Spring

  • 在Java应用中,Spring框架是必须的,Spring的核心是IOC(控制反转)以及AOP(面向切面编程)
  • IOC
  1. 它是一个大容器。方便组装管理各类系统内外部资源。在Spring中,它会认为一切Java资源都是Java Bean,容器的目标就是管理这些Bean和它们之间的关系。
  2. SpringIOC管理对象和其依赖关系,采用的不是人为的主动创建,而是由SpringIOC自己通过描述创建的,也就是说Spring是依靠描述来完成对象的创建及其依赖关系。
  3. 描述(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>
View Code
  • 如果要切换其它引用那么只需要修改<bean id="user" class="com.aone.user"/>配置文件就可,不需要再去new 其它对象。这种方式将bean之间的依赖关系解耦了,使程序结构更加清晰。
  • AOP
  1. 对面向对象的补充,目前广泛用于日志数据库事务控制,减少了大量重复代码,使得程序更加清晰。
  2. 在默认情况下,只要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 }
View Code
  • 为什么使用Spring框架?
  1. 使用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();使得事务生效,异常回滚。

原文地址:https://www.cnblogs.com/LJing21/p/10506274.html