您的位置:首页 > 其它

maven-ssm框架基本整合之配置文件的配置

2017-01-18 09:49 615 查看
首先说一下为什么要写这个吧!这篇博客是对maven的ssm框架整合的一些基本配置,有了以下配置,一个ssm小demo就可以运行起来了.本人之前也是使用的ssh框架,刚学完ssm,就写下了这篇文章,一个是对ssm学习的一个整个,加深对整个框架的一些认识,然后也可以让其他朋友快速的上手ssm框架.好了,废话不多说,直接上代码吧!shouxian一.依赖管理(我的依赖都是继承的父项目的,所以版本号都交给了父项目统一管理)1.spring和springmvc相关依赖
<!--Spring-->
<!--springmvc的相关依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<!--spring的相关依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
ps:spring-webmvc为springmvc的依赖,这个依赖又依赖spring的依赖,所以只要引入webmvc后,spring的相关依赖就不用引入了,会自动引入,下图是springmvc和spring的依赖关系:
2.mybatis相关依赖管理
<!--Mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId></dependency><dependency><groupId>com.github.miemiedev</groupId><artifactId>mybatis-paginator</artifactId></dependency>
3.mysql的依赖管理(我当前做的这个项目用的是mysql,配的是mysql的依赖)
<!--MySql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>
4.日志依赖
<!--log4j--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></dependency>
5.json处理工具的依赖()
<!--JacksonJson处理工具包--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency>
6.连接池依赖(我这里用的是BoneCPDataSource这个数据源,可以用其他的)
<!--连接池--><dependency><groupId>com.jolbox</groupId><artifactId>bonecp-spring</artifactId></dependency>
7.jsp相关依赖
<!--JSP相关--><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><scope>provided</scope></dependency><dependency><!--这个依赖的话,tomcat里面是有的,所以要加上生命周期scope,设置为provided-->e103<groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><scope>provided</scope></dependency>
8.Apache相关的依赖
<!--Apache工具组件--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId></dependency>
9.用到的一个分页的插件的依赖(不用就不写)
<!--分页助手--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId></dependency><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId></dependency>
10.通用mapper的依赖(用不到可以不写)
<!--通用mapper--><dependency><groupId>com.github.abel533</groupId><artifactId>mapper</artifactId></dependency>
11.junit依赖
<!--单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency>
12.相关插件
<plugins><!--资源文件拷贝插件--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.7</version><configuration><encoding>UTF-8</encoding></configuration></plugin><!--java编译插件--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin><!--配置Tomcat插件--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><configuration><port>8090</port><path>/</path></configuration></plugin></plugins>
二.web.xml配置
1.在web.xml里面配置前端转发器DispatcherServlet
<servlet><servlet-name>springmvc<!--名字随意,不过要和下面的servlet-name相同--></servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--不配置这个的话,会默认去WEB-INF目录下去加载springmvc配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc/usermanage-servlet.xml</param-value></init-param><!--随着web启动,初始化springmvc容器,如果不配置,只会在用户第一次访问时初始化--><load-on-startup>1</load-on-startup></servlet><!--/、*.xxxx、/xxx/*可以使用/*不能使用--><servlet-mapping><servlet-name>springmvc</servlet-name><!--所有请求都进入spirngmvc框架--><url-pattern>/</url-pattern></servlet-mapping>
2.在web.xml配置监听器,应用一加载就创建spring的容器
<!--指定spring的配置文件的位置,否则会在根目录下找--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/applicationContext*.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
3.在web.xml里配置编码
<!--字符编码过滤器--><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></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
三.mybatis的配置文件mybatis有两类配置文件,一类是mybatis的全局配置文件mybatis-config.xml,另一类是映射文件1.全局配置文件:配置的内容较少,很多内容都可以交给spring来管理.在这个项目中,我仅将一下内容写在全局配置文件里.其余均在spring配置文件中a.先导入约束(mybatis3):
<!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
b.配置驼峰映射
<!--开启驼峰自动映射(可以将表里的user_name自动映射为实体类的userName)--><settings><settingname="mapUnderscoreToCamelCase"value="true"/></settings>
c.配置分页助手插件pageHelper
<!--配置分页助手--><plugininterceptor="com.github.pagehelper.PageHelper"><propertyname="dialect"value="mysql"/><!--该参数默认为false--><!--设置为true时,使用RowBounds分页会进行count查询--><propertyname="rowBoundsWithCount"value="true"/></plugin>
d.配置通用mapper的拦截器
<plugininterceptor="com.github.abel533.mapperhelper.MapperInterceptor"><!--主键自增回写方法,默认值MYSQL,详细说明请看文档--><propertyname="IDENTITY"value="HSQLDB"/><!--通用Mapper接口,多个通用接口用逗号隔开--><propertyname="mappers"value="com.github.abel533.mapper.Mapper"/></plugin>
2.映射文件:体现数据表与实体类的映射关系,所有的sql语句都写在这个里面
<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--每一个mapper对应一个Mapper的接口,namespace就是对应接口的全类名--><mappernamespace="com.gh.usermanage.mapper.UserMapper"><!--每一个select或者update等等之类的标签就对应接口里面的一个方法,id对应方法名,parameterType对应参数类型,resultType对应返回值类型--><selectid="findAll"resultType="user"><!--标签里面写sql语句-->select*fromuser</select></mapper>
ps:.mybatis的通用mapper相当于hibernate的baseDao,将一些可以公用的方法抽取出来了.只要你的xxxMapper继承Mapper<T>即可,如果有些业务需求通用mapper无法实现的话,可以自己在xxxMapper里面定义方法,在映射文件中写sql就行了.3.补充:通用mapper的配置方法,分4步a.依赖(第一部分)b.拦截器配置(第三部分第1点的d)c.实体类加注解(下面是一个User实体,在数据库中对应着user)
@Table(name="user")publicclassUser{//主键@Id//主键生成策略@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;privateStringusername;privateStringsex;privateStringaddress;//@DateTimeFormat(pattern="yyyy-MM-dd")privateDatebirthday;
d.xxxMapper接口继承Mapper<T>
publicinterfaceUserMapperextendsMapper<User>{}
四.springmvc配置文件
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--springmvc的相关配置--><!--开启注解驱动(没有配置处理器映射器和适配器的时候会自动使用推荐的注解处理器映射器和适配器)--><mvc:annotation-driven/><!--定义扫描包将该包下所有标注有@controller的类加入到springmvc容器中--><context:component-scanbase-package="com.gh.usermanage.controller"/><!--定义视图解析器--><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/views/"/><propertyname="suffix"value=".jsp"/></bean><!--处理静态资源被拦截问题,将所有的静态资源全部交给服务器处理--><mvc:default-servlet-handler/></beans>
五.spring配置文件spring配置文件的话,可以分为不同的文件,命名就按applicationContext*.xml来1.applicationContext.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.0.xsd"><!--使用spring自带的占位符替换功能,当数据源引用配置文件的时候才有这个配置--><beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><!--允许JVM参数覆盖--><propertyname="systemPropertiesModeName"value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/><!--忽略没有找到的资源文件--><propertyname="ignoreResourceNotFound"value="true"/><!--配置资源文件--><propertyname="locations"><list><value>classpath:jdbc.properties</value></list></property></bean><!--开启注解包扫描--><context:component-scanbase-package="com.gh"/></beans>
ps:
jdbc.properties的配置
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis01?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=truejdbc.username=rootjdbc.password=999
2.application_datasource.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.0.xsd"><!--配置数据源--><beanid="dataSource"class="com.jolbox.bonecp.BoneCPDataSource"destroy-method="close"><!--数据库驱动如果下面是用的的"${...}",则上面那个文件里就要配置--><propertyname="driverClass"value="${jdbc.driver}"/><!--相应驱动的jdbcUrl--><propertyname="jdbcUrl"value="${jdbc.url}"/><!--数据库的用户名--><propertyname="username"value="${jdbc.username}"/><!--数据库的密码--><propertyname="password"value="${jdbc.password}"/><!--检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0--><propertyname="idleConnectionTestPeriod"value="60"/><!--连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0--><propertyname="idleMaxAge"value="30"/><!--每个分区最大的连接数--><propertyname="maxConnectionsPerPartition"value="150"/><!--每个分区最小的连接数--><propertyname="minConnectionsPerPartition"value="5"/></bean></beans>
3.applicationContext_mybatis.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--将mybatis交给spring管理--><!--定义Mybatis的SqlSessionFactory--><beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><!--引入数据源--><propertyname="dataSource"ref="dataSource"/><!--指定mybatis全局配置文件的位置--><propertyname="configLocation"value="classpath:mybatis/mybatis-config.xml"/><!--扫描目标下所有的mapper映射xml文件(/**/*.xml可以将mapper里面所有的包和包里的文件全部扫描到)--><propertyname="mapperLocations"value="classpath:mybatis/mapper/**/*.xml"/><!--别名包扫描,就是将这个包下面的所有实体类自动配置别名--><propertyname="typeAliasesPackage"value="com.gh.usermanage.pojo"/></bean><!--优化:无需手动操作SqlSessionFactory,直接通过spring容器获得Mapper接口的动态代理实现类。<beanid="userMapper"class="org.mybatis.spring.mapper.MapperFactoryBean"><!--mapper接口--><propertyname="mapperInterface"value="com.gh.usermanage.mapper.UserMapper"/><!--定义sqlSessionFactory--><propertyname="sqlSessionFactory"ref="sqlSessionFactory"/></bean>--><!--优化:无需指定一个个配置mapper接口,而是通过mapper扫描器对包进行扫描,生成所有mapper接口的动态代理实现类。--><!--无需指定sqlSessionFactory,扫描自动搜索查询sqlSessionFactory--><beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer"><propertyname="basePackage"value="com.gh.usermanage.mapper"/></bean></beans>
ps:spring还有一些其他配置,这里就不一一配置了,比如说tx,aspect,advice等的配置,不会影响到基本整合后的运行.ps:maven相关插件的详细介绍,请看http://blog.csdn.net/yaowj2/article/details/7198267这是我的第一篇博客,写的不好的地方,大家见谅!如果有什么不对或者不懂的地方,可以在下方评论,谢谢!

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: