AOP增强类型
前置增强<aop:before>
后置增强<aop:after-returning>
异常增强<aop:after-throwing>
最终增强<aop:affter>
环绕增强<aop:around>
依赖注入方式
设值注入(依赖setter方法注入)
<bean id="user" class="com.spring.User"/>
<bean id="player" class="com.spring.Player">
<property name="user" ref="user"/>
</bean>
构造注入(依赖构造函数注入)
<bean id="user" class="com.spring.User"/>
<bean id="player" class="com.spring.Player">
<constructor-arg name="user" ref="user">
</bean>
p命名空间注入
<bean id="zhugeliang" class="com.spring.User" p:name="诸葛亮" p:describe="从未见过如此厚颜无耻之人!"/>
<bean id="lufei" class="com.spring.User" p:name="路飞" p:describe="我是要成为海贼王的男人!"/>
注解实现依赖注入
Bean组件的装配可以通过@Autowired、@Qualifier或@Resource实现
示例代码
@Service("UserServiceImpl")
public class UserServiceImpl implements UserService {
// @Autowired
// @Qualifier("userDao")
// @Resource(type = UserDaoImpl.class)
@Resource(name = "userDao")
private UserDao userDao;
public UserServiceImpl() {
}
public UserServiceImpl(UserDaoImpl userDao) {
}
/**
* dao属性的setter访问器,会被Spring调用,实现设置注入
* @param userDao
*/
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
/**
* 保存用户信息
*
* @param user
*/
@Override
public void save(User user) {
// 调用UserDao的方法保存用户信息
userDao.save(user);
}@Component("userDao")
public class UserDaoImpl implements UserDao {
/**
* 保存用户信息
*
* @param user
*/
@Override
public void save(User user) {
// 这里并未实现完整的数据库操作,仅为说明问题
System.out.println("保存用户到数据库");
// throw new RuntimeException("测试异常增强");