-----------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
1)<bean>元素和注入的配置
可以使用组件扫描技术替代原有的<bean>定义和注入配置
使用方法:
-----------------------------------------------------
a.开启组件扫描功能
<context:component-scan base-package="要扫描的包路径">
</context:component-scan>
-----------------------------------------------------
b.注解标记 类前
@Controller
--Action
@Service
--再封装的DAO,Service
@Repository
--DAO
@Component
--通用
非单例模式:
@Controller
@Scope("prototype")
-----------------------------------------------------
id:
默认id是类名(首字母小写)
自定义id值:
@Repository("自定义的id")
-----------------------------------------------------
Scope:
默认是单例模式 singleton
改变:
@Repository
@Scope("prototype")
-----------------------------------------------------
注入属性:
在变量定义前或setter方法前或构造方法前
@Resource
@Autowired
a.如果不指定注入参数,会采用类型自动匹配
b.如果有两个符合的参数,指定其中一个参数
方式一:
@Resource(name="组件id")
方式二:
@Autowired
@Qualifier("组件id");
c.也可以不用写setter,直接把@Resource写在变量前
-----------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
2)<aop>元素配置
AOP注解配置的使用方法如下:
-----------------------------------------------------
a.开启AOP注解
<!--开启AOP注解-->
<aop:aspectj-autoproxy/>
-----------------------------------------------------
b.注解标记
(1).Bean组件定义 / 类前
@Component
(2).方面组件定义 / 类前
@Aspect //将Bean组件定义为方面组件,类定义前使用
(3).切入点定义 / 自定义方法前
@Pointcut("") //后加一个空方法,因为这个标记需要出现在一个方法前面
public void p1(){}
(4).通知定义 / 方面组件方法前
@Around("p1()") //环绕通知,加在方面组件方法前,一个值直接写
@Before //前置通知切入
@After //最终通知切入
@AfterReturning //后置通知切入
@After-Throwing(pointcut="p1()",throwing="ex")//注入两个值,异常通知切入
-----------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------