欢迎使用CSDN-markdown编辑器

来源:互联网 发布:linux 线程同步 编辑:程序博客网 时间:2024/05/23 02:03

自动化装配bean

Spring从两个角度来实现自动化装配

  • 组件扫描:Spring自动发现应用上下文所创建的bean
  • 自动装配:Spring自动满足bean之间的依赖

创建可被发现的bean

  • 如果希望在自动化装配中,bean可以被组件扫描到,对于每一个希望不被声明为bean的类,前面需要添加@Component注解
@Componentpublic class Compact {}

-如果希望生成的bean有独特的命名,可如下生成括号内的新名字

@Compenent("newName")public class Compact {}

组件扫描

在Spring2.5中引入了组件自动扫描机制,通过在classpath自动扫描的方式把组件纳入到Spring容器中。这大大减少了程序员在配置XML文件上的时间,使得配置文件显得干净,整洁,便于维护。

  • 通过XML启动组件扫描
    在web.xml里面添加< context: component-scan base-package=”包名”>

  • 通过注解启动组件扫描
    在配置类声明前添加注解@ComponentScan会扫描当前配置类下的包,并把bean纳入Spring容器中。

@ComponentScan()public class CompactConfig{}

自动装配

  • 如果希望将一个类的bean成功注入到另一个类中,可以通过注解@Autowired实现
@Componentpublic class Compact {    private CompactInside ci;    @Autowirred    public Compact(CompactInside ci) {        this.ci = ci;    }}
@Componentpublic class Compact {    private CompactInside ci;    @Autowirred    public void setCompact(CompactInside ci) {        this.ci = ci;    }}
  • 如果找不到匹配的bean,那么程序会抛出异常,如果希望程序不被这种情况影响,可以加入required属性。此时自动装配失败,bean处于未装配状态。
@Componentpublic class Compact {    private CompactInside ci;    @Autowired(required=false)    public Compact(CompactInside ci) {        this.ci = ci;    }}
  • Java依赖注入规范提供了@Inject注解可完成一样的功能。
0 0
原创粉丝点击