spring sprinMVC mybitas 一起玩耍

103 阅读5分钟
分析:MVC
1. SpringMVC:控制器配置用注解
扫描包,视图解析器,开启注解支持,静态资源不过滤

2. MyBatis:它的SqlMapConfig.xml最后就没了(内容都挪到spring的配置文件中)
它的XXXDao.xml全用注解配置
Spring整合Mybatis关键点: 把Mybatis的SqlSessionFactory对象的创建交给Spring管理。
那么问题来了 mvc 的配置文件在哪加载 spring的配置文件在哪加载 mybitas的dao 在哪扫描 控制器又在哪扫描 service 又在哪扫描
废话不多说直接上代码
web.xml
<?
xml version
="1.0"
encoding
="UTF-8"
?>
<
web-app
xmlns:
xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns
="http://java.sun.com/xml/ns/javaee"
xsi
:schemaLocation
="http://java.sun.com/xml/ns/javaee java.sun.com/xml/ns/java…"
version
="2.5"
>
<
listener
>

<
listener-class
>
org.springframework.web.context.ContextLoaderListener
</
listener-class
>

</
listener
>

<
context-param
>

<
param-name
>
contextConfigLocation
</
param-name
>

<
param-value
>
classpath:applicationContext.xml
</
param-value
>

</
context-param
>


<!--2. SpringMVC前端控制器-->
<
servlet
>

<
servlet-name
>
dispatcherServlet
</
servlet-name
>

<
servlet-class
>
org.springframework.web.servlet.DispatcherServlet
</
servlet-class
>

<
init-param
>

<
param-name
>
contextConfigLocation
</
param-name
>

<
param-value
>
classpath:springMVC.xml
</
param-value
>

</
init-param
>

<!--表示启动时候创建servlet,数字越小越先优先创建-->
<
load-on-startup
>
1
</
load-on-startup
>

</
servlet
>

<
servlet-mapping
>

<
servlet-name
>
dispatcherServlet
</
servlet-name
>

<
url-pattern
>
/
</
url-pattern
>

</
servlet-mapping
>


<!--3. SpringMVC编码过滤器,解决中文乱码文件-->
<
filter
>

<
filter-name
>
characterEncodingFilter
</
filter-name
>

<
filter-class
>
org.springframework.web.filter.CharacterEncodingFilter
</
filter-class
>

<!--指定编码-->
<
init-param
>

<
param-name
>
encoding
</
param-name
>

<
param-value
>
UTF-8
</
param-value
>

</
init-param
>

<!--启动过滤器-->
<
init-param
>

<
param-name
>
forceEncoding
</
param-name
>

<
param-value
>
true
</
param-value
>

</
init-param
>

</
filter
>

<
filter-mapping
>

<
filter-name
>
characterEncodingFilter
</
filter-name
>

<
url-pattern
>
/*
</
url-pattern
>

</
filter-mapping
>

<!--springSecurity委派过滤器-->
<
filter
>

<
filter-name
>
springSecurityFilterChain
</
filter-name
>

<
filter-class
>
org.springframework.web.filter.DelegatingFilterProxy
</
filter-class
>

</
filter
>

<
filter-mapping
>

<
filter-name
>
springSecurityFilterChain
</
filter-name
>

<
url-pattern
>
/*
</
url-pattern
>

</
filter-mapping
>

<
servlet-mapping
>

<
servlet-name
>
default
</
servlet-name
>

<
url-pattern
>
*.html
</
url-pattern
>

</
servlet-mapping
>

</
web-app
>
从上面的web.xml 可以看到 mvc 的配置文件是通过 配置disoatcherServlet初始化参数 来加载的spring的配置文件是通过ContextLoaderListener加载的
哪好spring springMVC 配置文件都有地方加载了 哪mybiats在哪加载呢?惯例 上代码
applicationContext.xml
<?
xml version
="1.0"
encoding
="UTF-8"
?>
<
beans
xmlns
="http://www.springframework.org/schema/beans"
xmlns:
xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns:
context
="http://www.springframework.org/schema/context"
xmlns:
tx
="http://www.springframework.org/schema/tx"
xsi
:schemaLocation
>


<!--1. 开启注解扫描,扫描service包下的注解-->
<
context
:component-scan
base-package
="cn.lixin.service"
></
context
:component-scan
>


<!--2. 加载jdbc.properties配置文件-->
<
context
:property-placeholder
location
="classpath:jdbc.properties"
></
context
:property-placeholder
>


<!--3. 创建连接池-->
<
bean
id
="dataSource"
class
="com.alibaba.druid.pool.DruidDataSource"
>

<
property
name
="driverClassName"
value
="${jdbc.driver}"
></
property
>

<
property
name
="url"
value
="${jdbc.url}"
></
property
>

<
property
name
="username"
value
="${jdbc.username}"
></
property
>

<
property
name
="password"
value
="${jdbc.password}"
></
property
>

<
property
name
="initialSize"
value
="${jdbc.initialSize}"
></
property
>

<
property
name
="maxActive"
value
="${jdbc.maxActive}"
></
property
>


</
bean
>

<!--4. Spring整合Mybatis,把SqlSession的工厂交给Spring管理-->
<
bean
id
="sqlSessionFactory"
class
="org.mybatis.spring.SqlSessionFactoryBean"
>

<
property
name
="dataSource"
ref
="dataSource"
></
property
>

<!--配置分页框架属性-->
<
property
name
="plugins"
>

<
array
>

<
bean
class
="com.github.pagehelper.PageInterceptor"
>

<
property
name
="properties"
>

<
props
>

<
prop
key
="helperDialect"
>
mysql
</
prop
>

<
prop
key
="reasonable"
>
true
</
prop
>

</
props
>

</
property
>

</
bean
>

</
array
>

</
property
>

</
bean
>

<!--5. 包扫描器,扫描.dao包下的所有dao的接口-->
<
bean
class
="org.mybatis.spring.mapper.MapperScannerConfigurer"
>

<
property
name
="basePackage"
value
="cn.lixin.dao"
></
property
>

</
bean
>


<!--6. 配置Spring提供的事务管理器-->
<
bean
id
="transactionManager"
class
="org.springframework.jdbc.datasource.DataSourceTransactionManager"
>

<
property
name
="dataSource"
ref
="dataSource"
></
property
>

</
bean
>


<!--7. 开启声明式事务的注解支持-->
<
tx
:annotation-driven
transaction-manager
="transactionManager"
></
tx
:annotation-driven
>

<!--导入SpringSecurity文件-->
<
import
resource
="classpath:springSecurity.xml"
></
import
>

</
beans
>

从上面的配置文可以看到
<!--2. 加载jdbc.properties配置文件-->
<!--3. 创建连接池-->

<!--4. Spring整合Mybatis,把SqlSession的工厂交给Spring管理-->
<!--5. 包扫描器,扫描.dao包下的所有dao的接口-->

<!--6. 配置Spring提供的事务管理器-->
Mybatis 配置文件的事情都可以在spring配置文件里面完成到此spring springMVC mybitas 是不是可以一起玩耍了
下面提供一下我的pom.xml 的依赖
<
properties
>

<
spring.version
>
5.0.2.RELEASE
</
spring.version
>

<
spring.aspectj
>
1.6.8
</
spring.aspectj
>

<
slf4j.version
>
1.6.6
</
slf4j.version
>

<
log4j.version
>
1.2.12
</
log4j.version
>

<
shiro.version
>
1.2.3
</
shiro.version
>

<
mysql.version
>
5.1.6
</
mysql.version
>

<
mybatis.version
>
3.4.5
</
mybatis.version
>

<
spring.security.version
>
5.0.1.RELEASE
</
spring.security.version
>

</
properties
>


<dependencies>
<!-- spring -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${spring.aspectj}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>

</dependencies>
至此:祝大家ssm玩的愉快

更多技术资讯可关注:gzitcast