spring实际使用要点概述

注意:在使用注解之前要开启注解扫描
在applicationContext.xml中配置开启spring注解功能
< context:annotation-config>
注解相当于是在配置文件中进行配置
常见注解介绍:(要是记不住的话,就像是查手册一样)

IOC基本注解配置
@Service("")配置了service
@Repository("")配置了DAO
@Autowired,单独使用,是根据对象的类型注入
@Qualifier(“类名”)根据bean的id/name进行注入

将对象交给spring
@Component
@Scope(""prototype)配置作用域,多例

注解配置对象的生命周期:
调用:@PostConstruct
方法名随便public void init(){sout"…"}
销毁:@PreDestroy
方法名随便public void destory(){sout"…"}

我们往往会用到spring监听器
在web.xml中配置
作用就是在Tomcat启动的时候,读取配置文件,创建一个spring容器绑到Tomcat容器上,从始至终就是一个容器,提升性能,不至于每次调用都重新创建spring容器

在spring中测试的时候,导入测试依赖,
记得加上< scope>test,作用是只在测试的时候会用到
< scope>provided意思是编译时有效
@RunWith(XXX.class)spring整合了Junit测试,同时在测试类中自动开启了spring的注解功能
@ContextConfiguration(locations=“classpath:XXXXXX.xml”)读取配置文件,自动创建spring工厂。
在java代码或者配置文件中有属性或者对应的方法有location(s),那么对应的值一定会包含classpath

AOP相关术语:

  • Aspect(切面): 是通知和切入点的结合,通知和切入点共同定义了关于切面的全部内容—它的功能、在何时和何地完成其功能
  • joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点.
  • Pointcut(切入点):所谓切入点是指我们要对哪些joinpoint进行拦截的定义.通知定义了切面的”什么”和”何时”,切入点就定义了”何地”.
  • Advice(通知):所谓通知是指拦截到joinpoint之后所要做的事情就是通知.通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)
  • Target(目标对象):代理的目标对象
    weaving(织入):是指把切面应用到目标对象来创建新的代理对象的过程.切面在指定的连- 接点织入到目标对象
  • Introduction(引介):在不修改类代码的前提下, Introduction可以在运行期为类动态地添加一些方法或Field.

代理知识小结:
区别:
JDK代理:基于接口的代理,一定是基于接口,会生成目标对象的接口类型的子对象。
Cglib代理:基于类的代理,不需要基于接口,会生成目标对象类型的子对象。

代理知识总结:

  • spring在运行期,生成动态代理对象,不需要特殊的编译器。
  • 使用该方式时需要注意:
  1. 对接口创建代理优于对类创建代理,spring推荐面向接口编程,因为这样会产生更加松耦合的系统,所以spring默认是jdk代理。对类代理是让遗留系统或无法实现接口的第三方类库同样可以得到通知,这种方案应该是备用方案。
  2. 标记为final的方法不能被通知。spring是为目标类产生的子类。任何需要被通知的方法都被重写,将通知织入final方法是不允许重写的。
  3. spring只支持方法连接点:不提供属性接入点,spring的观点是属性拦截破坏了封装。面向对象的概念是对象自己处理工作,其他对象只能通过方法调用得到的结果。

使用事务管理
需要先在applicationContext.xml开启开启注解驱动的开关。
@Transactional(readOnly = false)
某类
//表示对该类中所有方法进行事务管理

如果写在方法上,就会按就近原则,局部覆盖全局

你可能感兴趣的:(SSM之spring框架)