idea 2017 SpringMVC-Spring-MyBatis Maven项目从零构建

前言:

本文为小白爬坑指南,主要作用是防止自己失忆 (逃

零:创建Web工程

1.File -> new project -> maven 选择 mavne-webapp 模板 idea会生成一个基础的web工程目录结构
2.在pom文件中增加相应的依赖包

壹:集成SpringMVC

在web.xml 中引入 SpringMVC



  springMVC
  org.springframework.web.servlet.DispatcherServlet
  
    contextConfigLocation
    
      classpath:applicationContext-mvc.xml
    
  
  1


  springMVC
  /

SpringMVC 配置如下:
1.开启扫描,指定扫描目录
指定目录到Controller包的目的是预防SpringMVC和Spring扫描冲突
2.开启静态资源访问

  
  

  
  

  
  

  
  
      
      
      
      
    

3.配置好之后创建Controller以及jsp文件

@Controller
public class TestController {

    @RequestMapping("index")
    public String index(){
        return "index";
    }
}

4.配置好tomcat运行环境
5.启动工程
6.SpringMVC集成完毕

貳:集成Spring MyBatis

1.Dao匹配/Bean封装
2.注解事务处理

applicationContext-database.xml 数据源配置/mapping文件和dao映射

    
    
        
            classpath:/config/jdbc-mysql.properties
        
    

    
        
        
        
        
        
        
        
        
        
    
    
    
        
        
    
    
    
        
        
    

applicationContext-service.xml 事务管理

  
  
  
  
    
  
  
  
坑1 -- 如果SpringMVC的扫描路径包含Service扫描路径,由于加载顺序,Service会在SpringMVC加载时在Spring中生成无事务的bean 在事务扫描时由于bean已存在则不再重新创建,导致事务不生效
坑2 -- idea中的Spring框架context配置应如下,否则框架无法正常加载
image.png
TestDEMO:

单元测试

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = {"classpath*:application-service.xml"})
    public class TestUser {
    
        @Autowired
        UserService userService;
    
        @Test
        @Ignore
        public void testAddUser() {
            UserModel user = new UserModel();
            user.setName("aaa");
            user.setPassword("bbb");
            Integer id = userService.addUser(user);
            Assert.assertNotNull(id);
    
        }
    
    }

Dao mapper文件


    
    
        
        
            insert into user(name,password) values(#{name},#{password})
            
                SELECT LAST_INSERT_ID();
            
        
    
注:成功整合 mapper文件相当于Dao层接口的实现类 在Service层调用时可进行注解注入

附录:附配置文件

1.maven: pom.xml

4.0.0
com.coang
java
war
1.0-SNAPSHOT
ssm Maven Webapp
http://maven.apache.org

  1.8
  
  4.3.10.RELEASE
  
  3.3.0
  
  1.7.7
  1.2.17



  
  
    org.springframework
    spring-context
    ${spring.version}
  
  
    org.springframework
    spring-context-support
    ${spring.version}
  
  
    org.springframework
    spring-beans
    ${spring.version}
  
  
    org.springframework
    spring-aop
    ${spring.version}
  

  
    org.springframework
    spring-jdbc
    ${spring.version}
  

  
    org.springframework
    spring-webmvc
    ${spring.version}
  
  
  
  
    org.mybatis
    mybatis-spring
    1.2.3
  
  
  
    org.mybatis
    mybatis
    ${mybatis.version}
  
  
  
    mysql
    mysql-connector-java
    5.1.29
  
  
  
    commons-dbcp
    commons-dbcp
    1.4
  
  
  
    com.microsoft.sqlserver
    mssql-jdbc
    6.1.0.jre8
    test
  
  
  
    javax.servlet
    servlet-api
    2.5
    provided
  
  
  
  
  
    redis.clients
    jedis
    2.9.0
    jar
    compile
  

  
  
    org.springframework.data
    spring-data-redis
    1.8.6.RELEASE
  


  
  
    org.springframework
    spring-test
    ${spring.version}
    test
  
  
    junit
    junit
    4.12
    test
  
  
  
    org.codehaus.jackson
    jackson-mapper-asl
    1.9.13
  
  
  
    com.alibaba
    fastjson
    1.2.35
  
  
  
    javax.servlet
    jstl
    1.2
  
  
  
  
    log4j
    log4j
    ${log4j.version}
  
  
    org.slf4j
    slf4j-api
    ${slf4j.version}
  
  
    org.slf4j
    slf4j-log4j12
    ${slf4j.version}
  
  





  WebFramwork-ssm


2.web: web.xml


WebFramwork-ssm


  contextConfigLocation
  
    classpath:applicationContext-database.xml,
    classpath:applicationContext-service.xml
  



  log4jConfigLocation
  classpath:config/log4j.properties



  encodingFilter
  org.springframework.web.filter.CharacterEncodingFilter
  
    encoding
    UTF-8
  
  
    forceEncoding
    true
  


  encodingFilter
  /*




  org.springframework.web.context.ContextLoaderListener




  org.springframework.web.util.IntrospectorCleanupListener



  springMVC
  org.springframework.web.servlet.DispatcherServlet
  
    contextConfigLocation
    
      classpath:applicationContext-mvc.xml
    
  
  1



  springMVC
  /



  /jsp/index.jsp




  15


3.Spring mvc:applicationContext-mvc.xml



  
  

  
  

  
  

  
  
      
      
      
      
  

4.Spring:applicationContext-service.xml/applicationContext-database.xml

applicationContext-service.xml - 事务管理 注解事务





  
  

  
  
    
  

  
  

applicationContext-database.xml - 管理数据库连接/dao层映射




    

    
        
            
            classpath:/config/jdbc-mysql.properties
        
    

    
        
        
        
        
        
        
        
        
        
    
    
    
        
        
    
    
    
        
        
    


ps_0 Spring配置文件是可以用单个xml配置,只是个人喜好将配置分开 方便理解
ps_1 目录结构

    WebFramwork-ssm/
    │  pom.xml
    │  tree.txt
    │  WebFramwork-ssm.iml
    │      
    └─src
       └─main
          ├─java
          │  └─com
          │      └─coang
          │          ├─common
          │          ├─controller
          │          │      TestController.java
          │          │      
          │          ├─dao
          │          │      UserDao.java
          │          │      
          │          ├─modal
          │          │      UserModel.java
          │          │      
          │          └─service
          │              │  UserService.java
          │              │  
          │              └─impl
          │                      UserServiceImpl.java
          │                      
          ├─resources
          │  │  applicationContext-database.xml
          │  │  applicationContext-mvc.xml
          │  │  applicationContext-service.xml
          │  │  
          │  ├─config
          │  │      jdbc-mysql.properties
          │  │      jdbc-sqlserver.properties
          │  │      log4j.properties
          │  │      
          │  └─mapper
          │          UserMapper.xml
          │          
          └─webapp
              │  index.jsp
              │  
              └─WEB-INF
                  │  web.xml
                  │  
                  └─jsp
                          index.jsp

你可能感兴趣的:(idea 2017 SpringMVC-Spring-MyBatis Maven项目从零构建)