Spring 3.0开始,Spring JavaConfig项目提供了很多特性,包括:
- 配置型的注解:使用Java而不是xml定义Bean,比如:
@Configuration
,,@Bean
,@Import
,@DependsOn
。 -
@Component
:一个通用注解,可用于任何Bean。 -
@Repository
,@Service
,@Controller
更有针对性的注解。- @Repository:通常用于注解DAO类,即持久层;
- @Service:通常用于注解Service类,即服务层;
- @Controller:通常用于注解Controller类,即控制层;
- @Scope: 用于指定Bean的作用域。
@Required
该注解适用于Bean属性的setter方法,仅仅表示受影响的Bean属性必须在配置时进行填充,通过在bean定义或者通过自动装配一个明确的属性值。
@Autowired
该注解可以放在传统的setter方法上,也可以用于构造器或者成员变量上。
注意
- 默认情况下,如果因找不到合适的Bean将会导致autowiring失败抛出异常,可以通过下面的方式避免。
public class simpleMovieLister{
private MovieFinder movieFinder;
@Autowired(required=false)
public void setMovieFinder(MovieFinder movieFinder){
this.movieFinder=movieFinder;
}
}
- 每个类只能有一个构造器被标记为required=true;
- @Autowired的必要属性,建议使用
@Required
注解。