Bean的几种装配

Spring支持XML、注解和Java配置类三种方式来装配Bean,实现依赖注入。XML装配中可使用@Autowired自动装配;注解装配常用@Autowired、@Qualifier和@Resource;Java配置类则通过@Configuration和@Bean注解定义Bean。
摘要由CSDN通过智能技术生成

   Bean的装配可以理解为依赖关系注入,Bean的装配方式即Bean依赖注入的方式。

        Spring容器支持多种形式的Bean装配方式,如基于XML的装配基于注解的装配方式、以及基于Java配置类的装配

 

Bean的3种装配方式:

· 

1、基于XML形式的装配;

示例:

<bean id="postservice" class="com.bbs.service.impl.PostserviceImpl">  </bean>

<bean>中使用autowired属性完成依赖的自动装配,不再使用<property>手动注入setter方法中的依赖,简化了配置,减少了xml中的代码量。

·

2、基于注解形式的装配;

Spring常用的注解:

  • @Autowired 按类型自动装配(byType)。

  • @Qualifier 按名称自动装配,不能单用,需要和@Autowired配合使用(byName)。

  • @Resource 是byName、byType方式的结合。

·

3、基于Java配置类的装配;

不使用xml文件配置Bean,而是单独写一个配置类来配置Bean。

示例:

 
  1. @Configuration //表示这个类是用来配置Bean的

  2. class Config{

  3. @Value("张三") String name;  

  4.    //配置一个Bean,相当于xml中的一个<bean>

  5.    @Bean(name = "student")

  6.    public Student student(){

  7.        //...具体业务逻辑

  8.        return student;

  9.   }

  10. }

 

Spring框架中,Bean的装配是指将各个Bean组合在一起,以便它们可以一起协同工作。有几种常见的Bean装配方式: 1. 自动装配(autowiring): Spring可以自动地注入依赖,而无需在配置文件中显式指定。自动装配可以通过XML配置或注解实现。使用注解时,可以使用@Autowired和@Inject来自动注入依赖。 示例(使用@Autowired注解): ```java public class MyService { private MyRepository myRepository; @Autowired public void setMyRepository(MyRepository myRepository) { this.myRepository = myRepository; } } ``` 2. 构造器装配(constructor injection): 通过Bean的构造器参数来注入依赖。这种方式可以保证依赖的注入,并且可以用来创建不可变对象。 示例(使用构造器注入): ```java public class MyService { private final MyRepository myRepository; public MyService(MyRepository myRepository) { this.myRepository = myRepository; } } ``` 3. Setter方法装配(setter injection): 通过Bean的setter方法来注入依赖。这种方式可以为属性提供默认值,也支持空值。 示例(使用setter方法注入): ```java public class MyService { private MyRepository myRepository; public void setMyRepository(MyRepository myRepository) { this.myRepository = myRepository; } } ``` 4. 字段注入(field injection): 直接在类的成员变量上使用注解来注入依赖。这种方式代码简洁,但降低了代码的可测试性。 示例(使用字段注入): ```java public class MyService { @Autowired private MyRepository myRepository; } ``` 5. 基于Java的配置(Java-based configuration): 使用@Configuration注解的类来定义Bean,并通过@Bean注解的方法来定义Bean的装配。 示例(Java配置类): ```java @Configuration public class AppConfig { @Bean public MyService myService(MyRepository myRepository) { MyService myService = new MyService(); myService.setMyRepository(myRepository); return myService; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值