maven 构建 全注解 spring mvc + mybatis mysql 项目

来源:互联网 发布:华为盒子电视直播软件 编辑:程序博客网 时间:2024/06/01 10:10

 项目是由上个项目直接改的,所有有些地方的文件名 还没改过来,不过按照流程一套整合下来是可以用的!


老规矩,先上图




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>SpringMvcMybatis1</groupId>  <artifactId>SpringMvcMybatis1</artifactId>  <packaging>war</packaging>  <version>0.0.1-SNAPSHOT</version>  <name>SpringMvcMybatis1 Maven Webapp</name>  <url>http://maven.apache.org</url> <properties>          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>          <springversion>3.1.2.RELEASE</springversion>         <hibernate.version>4.2.5.Final</hibernate.version>         <junitversion>3.8.1</junitversion>    </properties>      <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>3.8.1</version>      <scope>test</scope>    </dependency>    <!--springmvc  -->    <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-aop</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-asm</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-aspects</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-beans</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-context</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-context-support</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-core</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-expression</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-jdbc</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-jms</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-orm</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-oxm</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-tx</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-web</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-webmvc</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-test</artifactId>              <version>${springversion}</version>              <type>jar</type>              <scope>compile</scope>          </dependency>                  <dependency>  <groupId>javax.servlet</groupId>  <artifactId>servlet-api</artifactId>  <version>2.5</version>  <type>jar</type>            <scope>compile</scope> </dependency><dependency>  <groupId>org.aspectj</groupId>  <artifactId>aspectjweaver</artifactId>  <version>1.8.2</version>  <type>jar</type>            <scope>compile</scope> </dependency><!-- 不加这个会爆spring注入错误,这个包用来组织spring被注入的各个模块 --><dependency><groupId>cglib</groupId><artifactId>cglib-nodep</artifactId><version>3.1</version><type>jar</type>            <scope>compile</scope> </dependency><!-- log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version><type>jar</type>            <scope>compile</scope> </dependency><!-- mysql--> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.32</version></dependency><!--mybatis  --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.2.8</version><type>jar</type>            <scope>compile</scope> </dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.2</version><type>jar</type>            <scope>compile</scope> </dependency><!-- springmvc 返回json --><dependency>  <groupId>fakepath</groupId>  <artifactId>jackson-core-asl</artifactId>  <version>1.7.2</version></dependency><dependency>  <groupId>fakepath</groupId>  <artifactId>jackson-mapper-asl</artifactId>  <version>1.7.2</version></dependency><!-- 文件上传 --><dependency>  <groupId>commons-fileupload</groupId>  <artifactId>commons-fileupload</artifactId>  <version>1.3.1</version></dependency><!-- jstl --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>      </dependencies>  <build>    <finalName>SpringMvcMybatis</finalName>  </build>  <!-- 这段是我自己的maven私服,不需要的可以删掉 -->      <distributionManagement>          <repository>              <id>user-release</id>              <name>User Project Release</name>              <url>http://localhost:8081/nexus/content/repositories/releases/</url>          </repository>            <snapshotRepository>              <id>user-snapshots</id>              <name>User Project SNAPSHOTS</name>              <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>          </snapshotRepository>      </distributionManagement>  </project>




Controller 

package com.haoran.action;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.SessionAttributes;import com.haoran.po.User;import com.haoran.service.UserService;@Controller@RequestMapping("/user.do")@SessionAttributes({"u","a"})public class UserController  {@Resourceprivate UserService userService;@RequestMapping(params="method=reg6")public String reg(String name){System.out.println("UserController.reg()");User u=new User();u.setName(name);u.setAge(20);userService.add(u);return "index";}public UserService getUserService() {return userService;}public void setUserService(UserService userService) {this.userService = userService;}}


DAO  层接口与映射的实现类   代替了原来在mapper.xml里面写sql的那种(以前xml的那种真是写怕了,还是注解方便,干净简洁)



package com.haoran.dao;import org.apache.ibatis.annotations.Insert;import org.springframework.stereotype.Repository;import com.haoran.po.User;@Repository(value = "userDao")public interface DaoMapper {    @Insert("INSERT INTO userinfo VALUES(#{id},#{name},#{age},#{username})")public void addUser(User u);}


interceptor 层


package com.haoran.interceptor;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;public class MyInterceptor implements HandlerInterceptor {@Overridepublic void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex)throws Exception {System.out.println("2222");}@Overridepublic void postHandle(HttpServletRequest request,HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {System.out.println("11111");}@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {System.out.println("00000000");return true;}}



package com.haoran.interceptor;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;public class MyInterceptor2 extends HandlerInterceptorAdapter {@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {System.out.println("MyInterceptor2.preHandle()");return true;}}

entity 

package com.haoran.po;/** * Userinfo entity. @author MyEclipse Persistence Tools */public class User implements java.io.Serializable {// Fieldsprivate Integer id;private String name;private Integer age;private String username;// Constructors/** default constructor */public User() {}/** full constructor */public User(String name, Integer age) {this.name = name;this.age = age;}// Property accessorspublic Integer getId() {return this.id;}public void setId(Integer id) {this.id = id;}public String getName() {return this.name;}public void setName(String name) {this.name = name;}public Integer getAge() {return this.age;}public void setAge(Integer age) {this.age = age;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public User(Integer id, String name, Integer age, String username) {super();this.id = id;this.name = name;this.age = age;this.username = username;}}

service


package com.haoran.service;import javax.annotation.Resource;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import com.haoran.dao.DaoMapper;import com.haoran.po.User;@Service("userService")@Transactionalpublic class UserService {@Resourceprivate DaoMapper userDao;public void add(User u){System.out.println("UserService.add()");userDao.addUser(u);}}


hib-config.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:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  http://www.springframework.org/schema/context      http://www.springframework.org/schema/context/spring-context-2.5.xsd"><context:component-scan  base-package="com.haoran"/>   <!-- 支持aop注解 --><aop:aspectj-autoproxy /><bean id="dataSource"              class="org.springframework.jdbc.datasource.DriverManagerDataSource">              <property name="driverClassName"                  value="com.mysql.jdbc.Driver">              </property>              <property name="url" value="jdbc:mysql://localhost:3306/maven"></property>              <property name="username" value="root"></property>              <property name="password" value="123456"></property>    </bean>      <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->      <bean id="transactionManager"          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">          <property name="dataSource" ref="dataSource" />      </bean>        <!-- 创建SqlSessionFactory,同时指定数据源 -->      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">          <property name="dataSource" ref="dataSource" />      </bean>            <!-- 可通过注解控制事务 -->      <tx:annotation-driven />        <!-- Mapper接口所在包名,Spring会自动查找其下的Mapper -->      <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">          <property name="basePackage" value="com.haoran.dao" />      </bean>  </beans>


springmvc-servlet.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:p="http://www.springframework.org/schema/p"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"xmlns:util="http://www.springframework.org/schema/util"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                http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> <!-- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 --><context:component-scan base-package="com.haoran" /><mvc:annotation-driven />  <!-- 支持spring3.0新的mvc注解 --><!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><property name="cacheSeconds" value="0" /><property name="messageConverters"><list><beanclass="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean></list></property></bean><mvc:interceptors><bean class="com.haoran.interceptor.MyInterceptor"></bean> <!-- 拦截所有springmvc的url! --><mvc:interceptor><mvc:mapping path="/user.do" /><!--<mvc:mapping path="/test/*" />--><bean class="com.haoran.interceptor.MyInterceptor2"></bean></mvc:interceptor></mvc:interceptors><!--对模型视图名称的解析,即在模型视图名称添加前后缀 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"p:suffix=".jsp"><!-- 如果使用jstl的话,配置下面的属性 --><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /></bean><!-- 处理文件上传 --><bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="gbk" /> <!-- 默认编码 (ISO-8859-1) --><property name="maxInMemorySize" value="10240" /> <!-- 最大内存大小 (10240)--><property name="uploadTempDir" value="/upload/" /> <!-- 上传后的目录名 (WebUtils#TEMP_DIR_CONTEXT_ATTRIBUTE) --><property name="maxUploadSize" value="-1" /> <!-- 最大文件大小,-1为无限止(-1) --></bean></beans>



web.xml


<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app>  <display-name>Archetype Created Web Application</display-name>      <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:hib-config.xml,classpath:springmvc-servlet.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>dispatcherServlet</servlet-name>        <url-pattern>*.do</url-pattern>    </servlet-mapping>  </web-app>


reg.jsp


<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body><form action="user.do" >用户名:<input type=text name=name /><br/><input type=hidden name=method value=reg6   /><input type=submit value=注册  /></form>  </body></html>

多看官方文档你也是技术大牛!欢迎大家一起交流学习!

0 0
原创粉丝点击