Spring配置Annotation的几点备忘

1、如何注入常量

@Value("${upload.filePath}")

2、如何配置Service、controler、DAO

@Controller

@Service("orgService")重命名为orgService否则按照orgServiceImpl命名

@Repository

3、如何配置延迟加载

@Lazy(false) 

4、如何配置bean的作用域

@Scope("singleton")

5、如何配置IBatis2.x版本的SqlMapClientTemplate

原有的SqlMapClientDaoSupport的setSqlMapClient是final方法,所以不能重写并标记为@Autowired

6、如何在域的位置注入bean

@Resource(name="beanId")

7、如何配置事务

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>     

表明为cglib的代理方式:proxy-target-class="true"

8、全局性配置

 <context:component-scan base-package="com.resoft.prophet" /> 

9、如何将整个类的方法配置为事务包裹的方法

@Transactional

public class A{

}

定义在类上的 @Transactional 注解指定了类中所有方法执行时的默认事务语义。

10、设置@Transactional(readOnly = true)有效吗,大多数是有效的,但是据说的确需要数据库的支持,经测试在mysql中没有问题,如果插入数据库,会报错

@Transactional(readOnly = true)

publicvoidinsertDept(Departmentdepartment)throwsEntityExistedException{

if(departmentDAO.isDeptExisted(department)){

thrownewEntityExistedException("您输入的部门全称已存在,请更换。");

}

departmentDAO.insertDept(department);

 }

11、默认是bytype的注入,如何byName注入?

12、@Autowired(required=true)在初始化时就校验

13、默认的事务annotation配置是?

事务传播设置是 PROPAGATION_REQUIRED

事务隔离级别是 ISOLATION_DEFAULT

事务是 读/写

事务超时默认是依赖于事务系统的,或者事务超时没有被支持。

任何 RuntimeException 将触发事务回滚,但是任何 checked Exception 将不触发事务回滚

14、如何标记多个事务属性???

@Transactional(readOnly = true)

@Transactional(readOnly = true, rollbackFor = { BusinessException.class })

15、配置单元测试加载配置文件的注解

@ContextConfiguration(locations = { "/cache/applicationContext-ehcache.xml" })

相关推荐