Spring学习3--基于注解的组件扫描

来源:互联网 发布:软件项目实施计划 编辑:程序博客网 时间:2024/06/06 21:35

什么是组件扫描?
指定一个包路径,spring会自动扫描该包及其子包的所有组件类,当发现组件类定义前有特定的注解标记时,就将该组件纳入到Spring容器中。(等价于bean定义功能),组件扫描可以代替大量xml配置bean的定义。


1.指定扫描路径

<context:component-scan base-package="要扫描的路径(com.test)" />

2.自动扫描的注解标记

  • @Component—通用注解
  • @Name—通用注解
  • @Repository—持久化层组件注解
  • @Service—业务层组件注解
  • @Controller—控制层组件注解

3.自动扫描组件的命名

  • 默认情况下为小写开头的类名
  • 也可以在口号中自定义
@Repositorypublic class UserDao(){....}@Service("loginService")public class UserService(){...}

第一个组件id的名字为userDao
第二个组件id的名字为loginService

4.指定组件的作用域

@Scope("prototype")@Repositorypublic class UserDao(){...}

5.指定依赖注入关系

  1. @Resource
  2. @Autowired/@Qualifier
  3. @Inject/@Named
    以上几种方式都可以指定依赖注入关系

6.注入Spring表达式

@Value注解可以注入Spring表达式

1.在xml配置中指定要注入的properties文件

<util:properties id="jdbcProps" location="classpaath:db.properties"/>

2.在setter方法前使用@Value注解

public class JDBCDataSource{    @Value("#{jdbcProps.url}")    private String url;    @Value("#{jdbcProps.driver}")    public void setUrl(String driver){... }}
0 0
原创粉丝点击