Maven-SSM 框架整合

记一次简单的整合了一次SSM框架过程,因为好久不用了在过程中发生了一些问题。 后续我会在继续在此基础上整合其他框架进来。

本次整合用到的框架有:

  • spring & springmvc
  • mybatis (mybatis Plus 好像是一个有意思的东西)

mybatis-spring
mybatis


首先,把整体结构贴出来

ssm.png

pom.xml


        
        4.2.4.RELEASE
        
        3.2.1
        
        1.7.7
        1.2.17
        5.1.35
    

    
        
        

        
        
            org.springframework
            spring-core
            ${spring.version}
        
        
            org.springframework
            spring-oxm
            ${spring.version}
        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-aspects
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            org.springframework
            spring-web
            ${spring.version}
        
        
        
            org.springframework
            spring-test
            ${spring.version}
            test
        
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        

        
        
            mysql
            mysql-connector-java
            ${mysql.version}
        

        
        
            commons-dbcp
            commons-dbcp
            1.2.2
        

        
        
            com.alibaba
            druid
            1.1.12
        

        
        
            com.alibaba
            fastjson
            1.1.41
        

        
        
            log4j
            log4j
            ${log4j.version}
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        
        
            ch.qos.logback
            logback-classic
            1.1.2
        
        
            ch.qos.logback
            logback-core
            1.1.2
        
        
            org.logback-extensions
            logback-ext-spring
            0.1.1
        

        
        
            org.codehaus.jackson
            jackson-mapper-asl
            1.9.13
        

        
        
            commons-fileupload
            commons-fileupload
            1.3.1
        
        
            commons-io
            commons-io
            2.4
        
        
            commons-codec
            commons-codec
            1.9
        

        
        
            org.mybatis
            mybatis
            ${mybatis.version}
        

        
        
            org.mybatis
            mybatis-spring
            1.2.2
        
        
        
            javax.servlet
            javax.servlet-api
            3.0.1
            provided
        
        
            javax.servlet.jsp
            javax.servlet.jsp-api
            2.3.2-b01
            provided
        
        
        
            javax.servlet
            jstl
            1.2
        
        
        
            junit
            junit
            4.11
            test
        
    

    
        
        
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.5.1
                
                    1.8
                    1.8
                    UTF-8
                
            
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.2
                
                    /
                    8080
                    tomcat7
                
                
                    
                        package
                        
                            run
                        
                    
                
            
        
    

Spring相关配置

  • applicationContext-main.xml



    
    
    
    

      
     
        
            
               classpath:properties/mysql.properties
                
            
        
    


  • applicationContext-datasource.xml
    DruidDataSource配置-GitHub




    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
        
        
        
    
    
    
    
        
        
    

  • applicationContext-transaction.xml

三种事务配置方式,在验证事务的过程中遇到了一个有趣的问题。目前还未搞清楚原因先记录下,等深入研究后补全原因。
使用@Transactional 注解或者在xml中配置事务传播机制为 【PROPAGATION_SUPPORTS】【readOnly = true】,这个时候方法还是可以写入数据库。
但是仅配置【readOnly = true】的情况下做数据修改操作的时候事务就起作用了,会抛出一个只读的异常。
【PROPAGATION_REQUIRED】事务是正常的。
这是什么原因呢?待后续研究后更新...




    
    
    
    
    
        
    
    

    
    
     
    
    

  • mysql.properties
jdbc_url=jdbc:mysql://localhost:3306/develop01
jdbc_user=root
jdbc_password=123
jdbc_driver=com.mysql.jdbc.Driver
  • spring-mvc.xml



    
    
        
        
        
        
    

    
    

    
    

    
    
    
    


Logger

  • log4j.properties
log4j.rootLogger=DEBUG,ERROR,Console,Stdout

#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.appender.stdout.Target=System.out

log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG 

#log4j.appender.Stdout = org.apache.log4j.DailyRollingFileAppender  
#log4j.appender.Stdout.File = E://logs/log.log  
#log4j.appender.Stdout.Append = true  
#log4j.appender.Stdout.Threshold = DEBUG   
#log4j.appender.Stdout.layout = org.apache.log4j.PatternLayout  
#log4j.appender.Stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n  

mybatis

  • mybatis.xml




    
    



  • *mapper.xml

注意!mapper.xml文件的位置如果要放到java包中,需要在pom.xml配置资源位置,否则运行时maven会过滤掉src/main/java中的除 .java 文件





    
    
    
         insert into t_course
            
                `username`,
                `password`,
                `email`,
            
          values
            
                #{username},
                #{password},
                #{email},
            
    
    


web.xml

    
    
    
    
        spring.profiles.active
        developer
    
    
        spring.profiles.default
        developer
    
    
        spring.liveBeansView.mbeanDomain
        developer
    
    
    
    
        webAppRootKey
        springmvc.root
    

    
    
        
        log4jConfigLocation
        classpath:log4j.properties
    
    
        
        log4jRefreshInterval
        6000
    
    
        org.springframework.web.util.Log4jConfigListener
    

    
    
        contextConfigLocation
        classpath:spring/applicationContext-*.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        SpringEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceEncoding
            true
        
    
    
        SpringEncodingFilter
        /*
    

    
    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            
            classpath:springmvc/spring-mvc.xml
        
        1
    
    
    
        dispatcherServlet
        /
    


测试的java代码就不贴出来了。 - ) 0

你可能感兴趣的:(Maven-SSM 框架整合)