1.注解bean(在类前注解)
@Controller 控制层,就是我们的action层
@Service 业务逻辑层,就是我们的service或者manager层
@Repository 持久层,就是我们常说的DAO层
而@Component (字面意思就是组件),它在你确定不了是哪一个层的时候使用。
其实,这四个注解的效果都是一样的
2.注解bean的id属性
@Repository:默认是类名(首字母小写)
例子:@Repository("自定义的id")
3.注解bean的scope属性
@Scope:默认是singleton
@Scope("prototype")
4.bean的属性注入的注解
在变量定义前或setter方法前或构造方法前
@Resource
@Autowired
a.如果不指定注入参数,会采用类型自动匹配
b.如果有两个符合的参数,指定其中一个参数
方式一:
@Resource(name="组件id")
方式二:
@Autowired
@Qualifier("组件id");
c.也可以不用写setter,直接把@Resource写在变量前
5. 修改spring的配置文件,开启组件扫描
<!-- 开启组件扫描 -->
<context:component-scan base-package="com"/>
6.aop的注解配置
1.spring配置文件中开启aop注解
<!-- 开启AOP注解 -->
<aop:aspectj-autoproxy/>
2.首先方面组件bean的类名前
先@Component
再@Scope
三@Aspect
3.在方面组件bean中,定义一个空方法,定义切入点
@Pointcut("within(com.service.*)")
public void mypoint(){
}
4.在方面组件的方面方法前,配置通知
@Around("mypoint()") //环绕通知,加在方面组件方法前,一个值直接写
@Before("mypoint()") //前置通知切入
@After("mypoint()") //最终通知切入
@AfterReturning("mypoint()") //后置通知切入
@After-Throwing(pointcut="mypoint()",throwing="ex")//注入两个值,异常通知切入