注解特定的组件
- @Component :基本的注解,标识了一个受spring管理的组件
-@Repository:标识持久层
-@Service:标识服务层
-@Controller:标识表现层。
在使用注解后还要spring的配置文件中声明要扫描的包
<!-- 注解方式必须在xml配置扫描这个包 base-package要扫描的包-->
<!-- resource-pattern过滤指定的类-->
<!-- context:include-filter子节点要包含的那些表达式的目标类-->
<!-- context:exclude-filter子节点要排除的目标类-->
<context:component-scan base-package="com.springTest"
resource-pattern="">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository;"/>
</context:component-scan>
@Autowired
注入属性
@Autowired
@Qualifier("UserDao")//指定那些指定的哪些实现类
private UserDao userDao;
还可以下面这样加
@Autowired
//指定那些指定的哪些实现类
public void setUserDao(@Qualifier("UserDao")UserDao userDao) {
this.userDao = userDao;
}
第二种注入属性
@Resource(name="userDao")
private UserDao userDao;
Spring的Java配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置。
Spring的Java配置方式是通过 @Configuration和 @Bean 这两个注解实现的:
1、@Configuration 作用于类上,相当于一个xml配置文件;
2、@Bean 作用于方法上,相当于xml配置中的<bean>;@Configuration//通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
@ComponentScan(basePackages="com.nari") //配置扫描包
publicclass SpringConfig{
@Bean// 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
public UserDAO getUserDAO(){
returnnew UserDAO(); // 直接new对象做演示
}
}