记一次简单的整合了一次SSM框架过程,因为好久不用了在过程中发生了一些问题。 后续我会在继续在此基础上整合其他框架进来。
本次整合用到的框架有:
- spring & springmvc
- mybatis (mybatis Plus 好像是一个有意思的东西)
mybatis-spring
mybatis
首先,把整体结构贴出来
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
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