spring 4以后的版本为什么没有了 org.springframework.spring transaction包-4.x.这个jar包了?

SpringMVC4零配置 - []地址更新: - ITeye博客
博客分类:
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请作如下操作:
&1.使用xml风格测试时,需要先将/src/main/java/web/config下的全部类移动到项目外,并开启web.xml中的相关配置&
&2.使用Bean风格测试时,需要保证/src/main/java/web/config下的全部类都存在,并关闭web.xml中的相关配置&
4.项目特征如下:
1)项目基于SpringMVC4
2)安全控制使用SpringSecurity3.2
3)Hibernate4 + 注解式事务管理
4)基于ASpect的注解式AOP
5)基于EHCache的注解式缓存
6)JSON及XML例子,@RestController及@Controller使用对比
7)单元测试基于MockMvc
8)配置了较完整的组件,贴近实际应用
5.运行环境:tomcat8.0.9 jdk1.7
这里对SpringMVC零配置做一个简单的说明
spring4中提供了大量的注解来支持零配置,简要说明如下:
@Configuration : 类似于spring配置文件,负责注册bean,对应的提供了@Bean注解。需要org.springframework.web.context.support.AnnotationConfigWebApplicationContext注册到容器中。
@ComponentScan : 注解类查找规则定义 &context:component-scan/&
@EnableAspectJAutoProxy : 激活Aspect自动代理 &aop:aspectj-autoproxy/&
@Import @ImportResource: 关联其它spring配置
&import resource="" /&
@EnableCaching :启用缓存注解
&cache:annotation-driven/&
@EnableTransactionManagement : 启用注解式事务管理 &tx:annotation-driven /&
@EnableWebMvcSecurity : 启用springSecurity安全验证
Servlet3.0规范,支持将web.xml相关配置也硬编码到代码中[servlet,filter,listener,等等],并由javax.servlet.ServletContainerInitializer的实现类负责在容器启动时进行加载,
spring提供了一个实现类org.springframework.web.SpringServletContainerInitializer,
该类会调用所有org.springframework.web.WebApplicationInitializer的实现类的onStartup(ServletContext servletContext)方法,将相关的组件注册到服务器;
spring同时提供了一些WebApplicationInitializer的实现类供我们继承,以简化相关的配置,比如:
org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer : 注册spring DispatcherServlet
org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer : 注册springSecurity
同时,spring也提供了一些@Configuration的支持类供我们继承,以简化相关@Configuration的配置,比如:
org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport : 封装了springmvc相关组件,我们可以通过注册新的@Bean和@Override相关方法,以实现对各个组件的注册;
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter : 封装类springsecurity相关组件
(112.3 KB)
下载次数: 4474
浏览 82799
为什么网上springmvc4零配置的资源这么少啊。好多都搞不懂。不要一味的追求零配置,零配置只是整合各个组件的一种方法,弄懂各个组件的功能及适用场景才是关键。
hanqunfeng
浏览: 1189997 次
来自: 北京
您好,我用您的方法通过java api往jira系统中添加is ...
可以了,是因为没加intercept-url 的拦截, 尼玛, ...
请问为什么我配了security.xml后切入点不起作用(之前 ...
根据楼主的代码 继承了WebMvcConfigurationS ...
MvcConfig.java的FilterType.ANNOT ...Spring 注解学习手札(六) 测试 - Snowolf的意境空间! - ITeye博客
博客分类:
既然系统基于注解自成一体,那么基于Spring的测试是否可以依赖注解轻松完成呢?坚决地没问题!
Spring-Test义不容辞的完成了这个任务!并且,通过Spring-Test的事务会滚控制,我们可以在不污染数据库数据的前提下进行业务测试!
完成这项内容,本次Spring 注解学习手札整理就正式落幕了! 感谢大家的关注!
相关参考:
这里将用到以下几个包:
引用
aopalliance-1.0.jar
commons-collections.jar
commons-dbcp.jar
commons-logging-1.1.1.jar
commons-pool.jar
junit-4.4.jar
log4j-1.2.15.jar
mysql-connector-java-5.1.6-bin.jar
spring-aop-2.5.6.jar
spring-beans-2.5.6.jar
spring-context-2.5.6.jar
spring-context-support-2.5.6.jar
spring-core-2.5.6.jar
spring-jdbc-2.5.6.jar
spring-tx-2.5.6.jar
spring-test-2.5.6.jar
spring-web-2.5.6.jar
spring-webmvc-2.5.6.jar
standard.jar
主要增加了spring-test-2.5.6.jar和junit-4.4.jar两个用于测试的包!
这里尤其要说明一下,由于我们使用注解方式自然要用到JUnit-4.X系列,而Sring-Test对于JUnit有个累人的要求,JUnit的版本必须是4.4,不支持高版本(如4.5、4.7等)。否则,会产生java.lang.ClassNotFoundException: org.junit.Assume$AssumptionViolatedException异常。
先来一个能够自动回滚的用于测试的父类——AbstractTestCase
AbstractTestCase.java
package org.zlex.
import org.junit.runner.RunW
import org.springframework.test.AbstractTransactionalDataSourceSpringContextT
import org.springframework.test.context.ContextC
import org.springframework.test.context.junit4.SpringJUnit4ClassR
import org.springframework.test.context.transaction.TransactionC
import org.springframework.transaction.annotation.T
* @author &a href="mailto:zlex."&梁栋&/a&
* @version 1.0
* @since 1.0
@ContextConfiguration(locations = "classpath:applicationContext.xml")
@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public abstract class AbstractTestCase extends
AbstractTransactionalDataSourceSpringContextTests {
让每一个测试类都写一堆配置忒麻烦! 索性来个老爹替子子孙孙都完成基础工作!
逐行分析:
@ContextConfiguration(locations = "classpath:applicationContext.xml")导入配置文件。这时候,我们可以看出之前使用applicationContext.xml文件作为系统总控文件的好处! 当然,Spring-Test的这个配置只认classpath,很无奈,我必须拷贝这些文件到根目录!
@RunWith(SpringJUnit4ClassRunner.class)SpringJUnit支持,由此引入Spring-Test框架支持!
@Transactional这个非常关键,如果不加入这个注解配置,事务控制就会完全失效!
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)这里的事务关联到配置文件中的事务控制器(transactionManager = "transactionManager"),同时指定自动回滚(defaultRollback = true)。这样做操作的数据才不会污染数据库!
AbstractTransactionalDataSourceSpringContextTests要想构建这一系列的无污染纯绿色事务测试框架就必须找到这个基类!
给出一个整体结构图:
test子目录下的文件将编译到classpath下,这其实还同时是个maven测试项目!拷一堆配置文件的确有些不方便!
AbstractTestCase.java用于抽象测试类控制。
AccountDaoTest.java用于AccountDao测试。
DaoAllTests.java用于Dao层的整体测试。
来看看AccountDaoTest
AccountDaoTest.java
package org.zlex.
import java.util.D
import org.junit.T
import org.springframework.beans.factory.annotation.A
import org.zlex.spring.dao.AccountD
import org.zlex.spring.domain.A
* @author &a href="mailto:zlex."&梁栋&/a&
* @version 1.0
* @since 1.0
public class AccountDaoTest extends AbstractTestCase {
@Autowired
private AccountDao accountD
public void test() {
Account ac = new Account();
ac.setBirthday(new Date());
ac.setUsername("SPRING");
ac.setPassword("SNOWOLF");
ac.setEmail("spring@zlex.org");
// 创建用户
accountDao.create(ac);
Account account = accountDao.read("SPRING");
assertNotNull(account);
只要记得使用注解@Test标识方法即可!
这里插入了一条数据,之后进行检索。如果数据存在则认为测试成功! 当然,这时候你要看看数据库是不是真的插入了一条数据!
执行这个方法,同时监控数据库,观察日志!最有效的办法是在执行检索方法时加入断点,同时监控数据库记录,你会发现此时数据库无此数据录入! 实际上这是一个未提交的事务!
完成操作,看看这时的日志:
数据库其实已经进行了回滚!
再看看DaoAllTests
DaoAllTests.java
package org.zlex.
import org.junit.runner.RunW
import org.junit.runners.S
import org.junit.runners.Suite.SuiteC
* @author &a href="mailto:zlex."&梁栋&/a&
* @version 1.0
* @since 1.0
@RunWith(Suite.class)
@SuiteClasses( { AccountDaoTest.class, AccountDaoTest.class })
public class DaoAllTests {
逐行说明:
@RunWith(Suite.class)集合测试
@SuiteClasses( { AccountDaoTest.class })集合,包括AccountDaoTest类,多个测试类可使用逗号分隔!
这个测试类可用于Dao层集合测试,与Spring无关!
完整代码见附件!
相关参考:
下载次数: 1447
浏览 46308
浏览: 3521012 次
来自: 北京
HMAC只有加密?没有解密?
赞,写得很好,很到位。转了。感谢博主
雪鞋了~~
学习了~~~~
学习了~~Spring3.0的Jar包详解 -
- ITeye博客
博客分类:
1. spring.jar 是包含有完整发布模块的单个jar 包。
2. org.springframework.aop 包含在应用中使用Spring的AOP特性时所需的类。
3. org.springframework.asm
Spring独立的asm程序, Spring2.5.6的时候需要asmJar 包,
3.0开始提供他自己独立的asmJar。
4. org.springframework.aspects 提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,
比如Eclipse AJDT。
5. org.springframework.beans所有应用都要用到的,它包含访问配置文件、创建和管理bean
以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。
6. org.springframework.context.support包含支持缓存Cache(ehcache)、JCA、JMX、
邮件服务(Java Mail、COS Mail)、任务计划Scheduling(Timer、Quartz)方面的类。
7. org.springframework.context为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext
特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、
JasperReports集成的类,以及校验Validation方面的相关类。
8. org.springframework.core 包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,
是其它组件的基本核心。
9. org.springframework.expression
Spring表达式语言。
10. org.springframework.instrument.tomcat Spring3.0对Tomcat的连接池的集成。
11. org.springframework.instrument Spring3.0对服务器的代理接口。
12. org.springframework.jdbc 包含对Spring对JDBC数据访问进行封装的所有类。
13. org.springframework.jms 提供了对JMS 1.0.2/1.1的支持类。
14. org.springframework.orm 包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,
因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖spring-dao.jar
里的类,用这个包时你需要同时包含spring-dao.jar包。
15. org.springframework.oxm
Spring 对Object/XMl的映射支持,可以让Java与XML之间来回切换。
16. org.springframework.test
对Junit等测试框架的简单封装。
17. org.springframework.transaction为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。
18. org.springframework.web.portlet
SpringMVC的增强。
19. org.springframework.web.servlet
对J2EE6.0 的Servlet3.0的支持。
20. org.springframework.web.struts Struts框架支持,可以更方便更容易的集成Struts框架。
21. org.springframework.web 包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入
WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
浏览 12647
浏览: 447478 次
来自: 福建
用 pageoffice 吧. http://www.zhuo ...
很好,谢谢分享。
&pre name=&code& c ...
&pre name=&code& c ...
&pre name=&code& c ...502 Bad Gateway
502 Bad Gateway下次自动登录
现在的位置:
& 综合 & 正文
Spring 中配置的问题 org.springframework.transaction.interceptor.TransactionInterceptor#0
问题描述:
org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'org.springframework.transaction.interceptor.TransactionInterceptor#0' must be of type [org.aopalliance.aop.Advice], but was actually of type [org.springframework.transaction.interceptor.TransactionInterceptor]
解决方案:
将applicationContext.xml中的&tx:annotation-driven transaction-manager="transactionManager" /&这一行注释掉
再运行,通过了。 但存在的问题是 事务不能工作了。
TransactionInterceptor是 org.aopalliance.aop.Advice
的一个实现,可能是Jar包的冲突。
到jar包中去查看。
我的问题是: aopalliance-1.0.jar 和 aopalliance-alpha1.jar之间的冲突。
将后者去掉,再运行就OK了。
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 spring中transaction 的文章

 

随机推荐