Eclipse下用Maven搭建SpringMvc+MyBatis
2015-08-19 19:52
776 查看
一、工欲善其事,必先利器。
利器:①Eclipse(安装好spring的STS工具,安装好Maven)
②得连接数据库测试一下,需要安装好MySQL,Navicat
二、开搞
(1)用maven新建一个web工程
File —>New —> Maven Project
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/520ec3bbdf984ca1e2cbd47f6c9c8371)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/e51c800585590738f3f0a80322587c2a)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/b6092a6a88facd2a35b57317e4adad59)
项目目录结构:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/eb4721cd530ad5cf52e0d6e50c4443d7)
配置成byn-web工程:右击项目名称—>Properties
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/e6cda68ef2299631a5edef33ab8ee81e)
改成你自己安装的JDK版本
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/6695eef8784b691b635d934959fb223f)
注意:先去掉这个勾,点apply,然后右击项目名称—>Properties回到这里把dyn-web-module改成3.0
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/8d5a6df94446cac6b6e84a6738ea4e19)
设置src/main/webapp为工程的根目录
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/0f811c5044b7bfb371e221421bb8fb00)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/06c6f77f8151823de1ad64eda09e890a)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/0a0dc3785329de559adfed60fa0a8534)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/ce84718f272ae43c07919da6d0ca170c)
到这一步,一个maven的动态web改成就基本完工了。目录结构变为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/810fe0bf4f2ebe26d89b6aa6a66afb8d)
(这个有个叉叉不要管,jsp这个文件内容去掉重写就没有了。)
(2)搭springMVC+MyBatis框架
maven导入jar包方法
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/313924df019cb42ada5f654df2961ffc)
加完后,右击pom.xml—>Run as —>maven install
jar包位置:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/482c2d05f9b89e4c25954eb3bd088009)
(3)Java代码
model:
DAO:
service:
serviceImpl:
controller:
(4)配置文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/77c64dd4ee9c11313c6cc76025ee000c)
下面是配置文件代码:
jdbc.properties(数据库文件)
log4j.properties(日志文件)
mybatis-config.xml
spring-mvc.xml
spring-mybatis.xml
spring.xml
userMapper.xml
web.xml
(5)发布到tomcat,打开浏览器输入:http://localhost:8080/mavenspringmvcmybatis-demo/test/selectUserById.do?id=1
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/10/a114e26c2f9ef6735647e0d40867dd36)
(我这里测试是从数据库返回一个json串。通过配置文件把返回数据转成json格式,详见spring-mvc.xml)
利器:①Eclipse(安装好spring的STS工具,安装好Maven)
②得连接数据库测试一下,需要安装好MySQL,Navicat
二、开搞
(1)用maven新建一个web工程
File —>New —> Maven Project
项目目录结构:
配置成byn-web工程:右击项目名称—>Properties
改成你自己安装的JDK版本
注意:先去掉这个勾,点apply,然后右击项目名称—>Properties回到这里把dyn-web-module改成3.0
设置src/main/webapp为工程的根目录
到这一步,一个maven的动态web改成就基本完工了。目录结构变为:
(这个有个叉叉不要管,jsp这个文件内容去掉重写就没有了。)
(2)搭springMVC+MyBatis框架
maven导入jar包方法
加完后,右击pom.xml—>Run as —>maven install
jar包位置:
(3)Java代码
model:
package com.demo.model; public class User { private Integer id; private String name; private String nickname; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public User(Integer id, String name, String nickname) { super(); this.id = id; this.name = name; this.nickname = nickname; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", nickname=" + nickname + "]"; } }
DAO:
package com.demo.dao; import com.demo.model.User; public interface UserDAO { User selectUserById(Integer id); }
service:
package com.demo.service; import com.demo.model.User; public interface UserService { User selectUserById(Integer id); }
serviceImpl:
package com.demo.serviceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.demo.dao.UserDAO; import com.demo.model.User; import com.demo.service.UserService; @Service public class UserServiceImpl implements UserService { @Autowired private UserDAO userDao; @Override public User selectUserById(Integer id) { // TODO Auto-generated method stub return userDao.selectUserById(id); } }
controller:
package com.demo.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.demo.model.User; import com.demo.serviceImpl.UserServiceImpl; @Controller @RequestMapping("/test") public class UserController { @Autowired private UserServiceImpl userService; @RequestMapping("/selectUserById") @ResponseBody public User selectUserById(HttpServletRequest request,HttpServletResponse response){ Integer id = Integer.parseInt(request.getParameter("id")); return userService.selectUserById(id); } }
(4)配置文件
下面是配置文件代码:
jdbc.properties(数据库文件)
jdbc_driverClassName=com.mysql.jdbc.Driver jdbc_url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8 jdbc_username=root jdbc_password=root
log4j.properties(日志文件)
### set log levels ### #log4j.rootLogger = debug , stdout , D , E log4j.rootLogger = debug , stdout , D ### output to the console ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout #log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n ### Output to the log file ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = ${springmvc.root}/WEB-INF/log.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### Save exception information to separate file ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = ${springmvc.root}/WEB-INF/error.log log4j.appender.D.Append = true log4j.appender.D.Threshold = ERROR log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <typeAlias alias="User" type="com.demo.model.User"/> </typeAliases> <mappers> </mappers> </configuration>
spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> <!-- 扫描controller,注入controller --> <context:component-scan base-package="com.demo"/> <!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 启动springMVC注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> </list> </property> </bean> <!-- 添加视图转换器,对视图模型添加前后缀 --> <bean name="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" /> <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="mediaTypes"> <map> <entry key="json" value="application/json"/> </map> </property> </bean> </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:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd"> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close" > <property name="driverClassName"> <value>${jdbc_driverClassName}</value> </property> <property name="url"> <value>${jdbc_url}</value> </property> <property name="username"> <value>${jdbc_username}</value> </property> <property name="password"> <value>${jdbc_password}</value> </property> <!-- 连接池最大使用连接数 --> <property name="maxActive"> <value>20</value> </property> <!-- 初始化连接大小 --> <property name="initialSize"> <value>1</value> </property> <!-- 获取连接最大等待时间 --> <property name="maxWait"> <value>60000</value> </property> <!-- 连接池最大空闲 --> <property name="maxIdle"> <value>20</value> </property> <!-- 连接池最小空闲 --> <property name="minIdle"> <value>3</value> </property> <!-- 自动清除无用连接 --> <property name="removeAbandoned"> <value>true</value> </property> <!-- 清除无用连接的等待时间 --> <property name="removeAbandonedTimeout"> <value>180</value> </property> <!-- 连接属性 --> <property name="connectionProperties"> <value>clientEncoding=UTF-8</value> </property> </bean> <!-- mybatis文件配置,扫描所有mapper文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref="dataSource" p:configLocation="classpath:conf/mybatis-config.xml" p:mapperLocations="classpath:mapper/*.xml"></bean> <!-- spring与mybatis整合配置,扫描所有dao --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" p:basePackage="com.demo.dao" p:sqlSessionFactoryBeanName="sqlSessionFactory"/> <!-- 对数据源进行事务管理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="dataSource"/> </beans>
spring.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"> <!-- 引入JDBC配置文件 --> <context:property-placeholder location="classpath:conf/jdbc.properties"/> <!-- 扫描文件,自动将service层注入 --> <context:component-scan base-package="com.demo.serviceImpl"></context:component-scan> </beans>
userMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.demo.dao.UserDAO"> <!-- 根据ID查找User --> <select id="selectUserById" parameterType="int" resultType="User"> select * from user where id=#{id} </select> </mapper>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>Archetype Created Web Application</display-name> <!-- 读取spring配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:conf/spring.xml,classpath:conf/spring-mybatis.xml</param-value> </context-param> <!-- 设计路径变量值 --> <context-param> <param-name>webAppRootKey</param-name> <param-value>springmvc.root</param-value> </context-param> <!-- Spring字符集过滤器 --> <filter> <filter-name>SpringEncodingFilter</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>SpringEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 日志记录 --> <context-param> <!-- 日志配置文件路径 --> <param-name>log4jConfigLocation</param-name> <param-value>classpath:conf/log4j.properties</param-value> </context-param> <context-param> <!-- 日志页面的刷新间隔 --> <param-name>log4jRefreshInterval</param-name> <param-value>6000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- springMVC核心配置 --> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:conf/spring-mvc.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
(5)发布到tomcat,打开浏览器输入:http://localhost:8080/mavenspringmvcmybatis-demo/test/selectUserById.do?id=1
(我这里测试是从数据库返回一个json串。通过配置文件把返回数据转成json格式,详见spring-mvc.xml)
相关文章推荐
- maven学习
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- maven插件maven-war-plugin的使用
- maven使用经验集
- MyEclipse Web Project转Eclipse Dynamic Web Project
- Windows Clang开发环境备忘
- 让Flex Builder 3.0与Eclipse3.4整合起来
- Eclipse配置Javascript开发环境图文教程
- 使用zend studio for eclipse不能激活代码提示功能的解决办法
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- 图解Eclipse j2ee开发环境的搭建过程
- struts2 spring整合fieldError问题
- ext for eclipse插件安装方法
- 解决Fedora14下eclipse进行android开发,ibus提示没有输入窗口的方法详解
- eclipse导入jquery包后报错的解决方法
- Eclipse 格式化代码时不换行与自动换行的实现方法
- Eclipse下jQuery文件报错出现错误提示红叉