SpringMvc+Spring+Mybatis+Maven整合
2015-09-01 16:16
711 查看
最近项目需要用到SSMM框架 来了此整合 我用的myEclipse
第一步 创建数据库 :
然后随便录入几条数据
第二部 用generator生成映射文件 和实体类 dao
generator.xml文件 要改的地方
然后 打开 cmd窗口 转到generator文件夹下
提示:按Shift+鼠标右键 --> 在此处打开命令窗口 写命令:
java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
然后生成:
生成之后 创建Maven项目
点击 finish 完成
创建后的视图:
查看项目自动生成的pom.xml文件
然后把先把spring-core的jar包加上 打开http://search.maven.org/
搜索spring-core
复制到pom.xml里
这是教 怎么自己手动添加jar包的方法
下面是 完整的pom.xml文件
pom.xml配置好了,然后把刚才生成的代码复制到src/main/java下面
然后该配置spring 文件了 maven的配置文件统统放在src/main/resources下面
首先加入log4j配置文件 log4j.properties
然后加入 数据库配置文件 config.properties
然后加入spring文件
再然后加入spring-mybatis.xml文件
接下来创建junit测试目录,如果有该目录就不用创建了
然后创建测试的UserServiceI和实现类UserviceImpl
然后创建测试类 test/main/java下
测试成功!!
spring和mybatis整合好了 下面springMVC整合
贴代码:
spring-mvc.xml 放到resources目录下
建立包: saw.controller
建立userController类 实现springMvc
编写web.xml
编写测试页面:showUser.jsp
然后发布项目 注意 我是用myEclipse10.0发布 10.0一下的有BUG 不能和Tomcat结合 还得需要什么什么包 还得配置tomcat
如果是用10.0一下的 tomcat识别不了项目的 需要这样
项目右键 --->myEclipse-->addWeb....什么什么 后面的单词我记不清了 反正有BUG 还是用10.0吧
发布后 浏览器输入 :http://localhost:8080/ssmm/userController/1/showUser.do
请看效果:
完成 .我也是第一次配置,请教了两位大神 @踏雪寻梅,@[深圳-电商-彪哥]
花了我一天半学着写着 .经验有限,高手勿喷.
说下在整合中遇到的问题 :
1.刚开始各种报错, 原因有两点 第一点 哪个地方写错字了 哪个地方不该这样写 第二点 少加包了 然后看看报的什么错 看看少了什么包 搜下 加到pom.xm里
2.包的版本问题,在pom.xml里最好先在头那声明版本 然后在下面写 例如: <version>${mybatis.version}</version>这样就不会出错了
3.发布项目时的 tomcat不能找到项目问题 解决:1.看看自己的myEclipse是否版本低 2.看看项目是否是webMaven项目 如果不是就点击项目 右键 _myEplice-->addWeb什么什么
就变成web项目了.其他解决方法在百度搜就搜到了 反正挺麻烦的
4. log4j log4j的格式都是一样的 写好一个 以后都通用了
5.spring_mybatis.xml里配置问题 有的时候它明明没有错 但是 就是说错了 你就clear一下项目 或者关闭再打开项目 就好了 .
第一步 创建数据库 :
然后随便录入几条数据
第二部 用generator生成映射文件 和实体类 dao
generator.xml文件 要改的地方
然后 打开 cmd窗口 转到generator文件夹下
提示:按Shift+鼠标右键 --> 在此处打开命令窗口 写命令:
java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
然后生成:
生成之后 创建Maven项目
点击 finish 完成
创建后的视图:
查看项目自动生成的pom.xml文件
然后把先把spring-core的jar包加上 打开http://search.maven.org/
搜索spring-core
复制到pom.xml里
这是教 怎么自己手动添加jar包的方法
下面是 完整的pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>eyas.springmvc</groupId> <artifactId>springmvc</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>springmvc Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <!-- spring版本号 --> <spring.version>3.2.3.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.2.3</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.6.6</slf4j.version> <log4j.version>1.2.9</log4j.version> <aspectj.version>1.8.6</aspectj.version> </properties> <dependencies> <!-- spring核心包 --> <!-- springframe start --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</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-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</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-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- springframe end --> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- mysql驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.29</version> </dependency> <!-- junit测试包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!--druid数据源 主要用 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.15</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 --> <!-- JSON包 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version> </dependency> <!-- 上传 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.2</version> </dependency> <!-- servlet包 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <!-- Spring依赖的包 --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> </dependencies> <build> <finalName>springmvc</finalName> </build> </project>
pom.xml配置好了,然后把刚才生成的代码复制到src/main/java下面
然后该配置spring 文件了 maven的配置文件统统放在src/main/resources下面
首先加入log4j配置文件 log4j.properties
log4j.rootLogger=DEBUG,Console,File log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=[%c]%m%n log4j.appender.File=org.apache.log4j.RollingFileAppender log4j.appender.File.File=ssmm.log log4j.appender.File.MaxFileSize=10MB log4j.appender.File.Threshold=ALL log4j.appender.File.layout=org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n
然后加入 数据库配置文件 config.properties
validationQuery=SELECT 1 jdbc_url=jdbc:mysql://localhost:3306/ssmm?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull jdbc_username=root jdbc_password=root
然后加入spring文件
<?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" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd "> <!-- 引入属性文件 --> <context:property-placeholder location="classpath:config.properties" /> <!-- 自动扫描(自动注入) --> <context:component-scan base-package="saw.service" /> </beans>
再然后加入spring-mybatis.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:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "> <!-- JNDI方式配置数据源 --> <!-- <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="${jndiName}"></property> </bean> --> <!-- 配置数据源 --> <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="${jdbc_url}" /> <property name="username" value="${jdbc_username}" /> <property name="password" value="${jdbc_password}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="0" /> <!-- 连接池最大使用连接数量 --> <property name="maxActive" value="20" /> <!-- 连接池最大空闲 --> <property name="maxIdle" value="20" /> <!-- 连接池最小空闲 --> <property name="minIdle" value="0" /> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="60000" /> <!-- <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="33" /> --> <property name="validationQuery" value="${validationQuery}" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <property name="testWhileIdle" value="true" /> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="25200000" /> <!-- 打开removeAbandoned功能 --> <property name="removeAbandoned" value="true" /> <!-- 1800秒,也就是30分钟 --> <property name="removeAbandonedTimeout" value="1800" /> <!-- 关闭abanded连接时输出错误日志 --> <property name="logAbandoned" value="true" /> <!-- 监控数据库 --> <!-- <property name="filters" value="stat" /> --> <property name="filters" value="mergeStat" /> </bean> <!-- myBatis文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 --> <property name="mapperLocations" value="classpath:saw/mapping/*.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="saw.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 注解方式配置事物 --> <!-- <tx:annotation-driven transaction-manager="transactionManager" /> --> <!-- 拦截器方式配置事物 --> <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="append*" propagation="REQUIRED" /> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="modify*" propagation="REQUIRED" /> <tx:method name="edit*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="remove*" propagation="REQUIRED" /> <tx:method name="repair" propagation="REQUIRED" /> <tx:method name="delAndRepair" propagation="REQUIRED" /> <tx:method name="get*" propagation="SUPPORTS" /> <tx:method name="find*" propagation="SUPPORTS" /> <tx:method name="load*" propagation="SUPPORTS" /> <tx:method name="search*" propagation="SUPPORTS" /> <tx:method name="datagrid*" propagation="SUPPORTS" /> <tx:method name="*" propagation="SUPPORTS" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="transactionPointcut" expression="execution(* saw.service..*Impl.*(..))" /> <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" /> </aop:config> <!-- 配置druid监控spring jdbc --> <bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"> </bean> <bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype"> <property name="patterns"> <list> <value>saw.service.*</value> </list> </property> </bean> <aop:config> <aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" /> </aop:config> </beans>
接下来创建junit测试目录,如果有该目录就不用创建了
然后创建测试的UserServiceI和实现类UserviceImpl
package com.service; import java.util.List; import saw.entity.User; public interface UserServiceI { User getUserById(Integer id); List<User> getAll(); }
package saw.service; import saw.entity.User; public interface UserServiceI { User getUserById(Integer id); }
然后创建测试类 test/main/java下
package saw.test; import org.apache.log4j.Logger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import saw.entity.User; import saw.service.UserServiceI; import com.alibaba.fastjson.JSON; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:spring.xml", "classpath:spring-mybatis.xml" }) public class MyTest { private static final Logger logger = Logger.getLogger(MyTest.class); private UserServiceI userService; public UserServiceI getUserService() { return userService; } @Autowired public void setUserService(UserServiceI userService) { this.userService = userService; } @Test public void test1() { User u = userService.getUserById(1); logger.info(JSON.toJSONStringWithDateFormat(u, "yyyy-MM-dd HH:mm:ss")); } }
测试成功!!
spring和mybatis整合好了 下面springMVC整合
贴代码:
spring-mvc.xml 放到resources目录下
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" 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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 --> <context:component-scan base-package="saw.controller" /> <!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> </list> </property> </bean> <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp" /> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding"> <value>UTF-8</value> </property> <property name="maxUploadSize"> <value>32505856</value><!-- 上传文件大小限制为31M,31*1024*1024 --> </property> <property name="maxInMemorySize"> <value>4096</value> </property> </bean> </beans>
建立包: saw.controller
建立userController类 实现springMvc
package saw.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import com.alibaba.fastjson.JSON; import saw.entity.User; import saw.service.UserServiceI; @Controller @RequestMapping("/userController") public class UserController { private saw.service.UserServiceI userService; public UserServiceI getUserService() { return userService; } @Autowired public void setUserService(UserServiceI userService) { this.userService = userService; } @RequestMapping("/{id}/showUser") public String showUser(@PathVariable Integer id, HttpServletRequest request) { User u = userService.getUserById(id); request.setAttribute("user", u); return "showUser"; } }
编写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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>mybatis</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml,classpath:spring-mybatis.xml</param-value> </context-param> <filter> <description>字符集过滤器</description> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <description>字符集编码</description> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <description>spring监听器</description> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 防止spring内存溢出监听器 --> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <!-- spring mvc servlet --> <servlet> <description>spring mvc servlet</description> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <description>spring mvc 配置文件</description> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/index.jsp</welcome-file> </welcome-file-list> <!-- 配置session超时时间,单位分钟 --> <session-config> <session-timeout>15</session-timeout> </session-config> </web-app>
编写测试页面:showUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body>${user.username} </body> </html>
然后发布项目 注意 我是用myEclipse10.0发布 10.0一下的有BUG 不能和Tomcat结合 还得需要什么什么包 还得配置tomcat
如果是用10.0一下的 tomcat识别不了项目的 需要这样
项目右键 --->myEclipse-->addWeb....什么什么 后面的单词我记不清了 反正有BUG 还是用10.0吧
发布后 浏览器输入 :http://localhost:8080/ssmm/userController/1/showUser.do
请看效果:
完成 .我也是第一次配置,请教了两位大神 @踏雪寻梅,@[深圳-电商-彪哥]
花了我一天半学着写着 .经验有限,高手勿喷.
说下在整合中遇到的问题 :
1.刚开始各种报错, 原因有两点 第一点 哪个地方写错字了 哪个地方不该这样写 第二点 少加包了 然后看看报的什么错 看看少了什么包 搜下 加到pom.xm里
2.包的版本问题,在pom.xml里最好先在头那声明版本 然后在下面写 例如: <version>${mybatis.version}</version>这样就不会出错了
3.发布项目时的 tomcat不能找到项目问题 解决:1.看看自己的myEclipse是否版本低 2.看看项目是否是webMaven项目 如果不是就点击项目 右键 _myEplice-->addWeb什么什么
就变成web项目了.其他解决方法在百度搜就搜到了 反正挺麻烦的
4. log4j log4j的格式都是一样的 写好一个 以后都通用了
5.spring_mybatis.xml里配置问题 有的时候它明明没有错 但是 就是说错了 你就clear一下项目 或者关闭再打开项目 就好了 .
相关文章推荐
- 用正则在eclipse中搜寻出所有中文字符
- struts之Action中获取request、response对象的方法
- Myeclipse10的优化设置
- struts2使用action方式实现文件下载(支持中文文件名)
- java时间对象总结
- spring data jpa使用懒操作
- WIN7 64位安装jdk,javac出错
- spring jdbc的使用
- 使用Java获取IP地址实例
- HashMap java.util.ConcurrentModificationException
- 出现 java.util.ConcurrentModificationException
- Java递归 遍历目录的小例子
- 经典算法之图的最短路径(一):Dijkstra算法
- java的indexOf(String.indexOf 方法)
- Java线程池
- SendEmail java发送邮件
- Java 中 array 用法
- java 读取txt文件和xls文件
- Assertion in void __stdcall mwJavaAbort(void)
- MyEclipse 8.5 Axis2 插件完整jar包