- 在Java应用中,Spring框架是必须的,Spring的核心是IOC(控制反转)以及AOP(面向切面编程)
- IOC
- 它是一个大容器。方便组装和管理各类系统内外部资源。在Spring中,它会认为一切Java资源都是Java Bean,容器的目标就是管理这些Bean和它们之间的关系。
- SpringIOC管理对象和其依赖关系,采用的不是人为的主动创建,而是由SpringIOC自己通过描述创建的,也就是说Spring是依靠描述来完成对象的创建及其依赖关系。
- 描述(XML配置文件),我们不使用new的方式去创建对象,而是使用XML配置文件的方式让SpringIOC容器自己去找对象,例如:
1 <bean id="user" class="com.aone.user"/> 2 <bean id="person" class="com.aone.person"> 3 <property name="user" ref="user"/> 4 </bean>
- 如果要切换其它引用那么只需要修改<bean id="user" class="com.aone.user"/>配置文件就可,不需要再去new 其它对象。这种方式将bean之间的依赖关系解耦了,使程序结构更加清晰。
- AOP
- 对面向对象的补充,目前广泛用于日志和数据库事务控制,减少了大量重复代码,使得程序更加清晰。
- 在默认情况下,只要Spring接受到了异常信息,它就会将数据库的事务回滚,从而保证数据的一致性。例如:
1 private void updateUser(User user){ 2 3 /*************/ 4 //关于对象的其它操作 5 /*************/ 6 //判断User是否存在 7 boolean flag=userService.isNot(user); 8 if(flag==false){ 9 //不存在抛出异常 10 throw new RuntimeException("用户不存在");//对象的其它操纵也会回滚 11 } 12 }
- 为什么使用Spring框架?
- 使用Spring框架可以达到模块解耦,控制对象之间的协作目的,所以Spring框架流行。
-
SpringIOC详解
- 相关问题
-
- IOC管理Bean流程
创建对象(装配Bean)-------->初始化对象(初始化Bean)-------->对象赋值使用(依赖注入)
装配Bean的方式:
初始化Bean的方式:
依赖注入方式:
-
- IOC容器常用接口
- Bean生命周期以及作用域(未完待续)
spring事务,TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
在aop配置事务控制或注解式控制事务中,try...catch...会使事务失效,可在catch中抛出运行时异常throw new RuntimeException(e)或者手动回滚TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();使得事务生效,异常回滚。