JavaSpring Bean的装配方式
程序员文章站
2024-02-15 11:56:52
...
Spring支持三种形式的Bean的装配方式,分别基于XML的装配、基于注解的装配和自动装配。
xml装配
当使用无参构造方法时,必须要有set方法,且在xml文件当中使用<property>
标签给定值。使用有参的构造函数在配置文件中使用<constructor-arg>
标签
如下代码所示:使用不同的标签装配bean。分别是对应java代码当中是否有带参数的构造函数。
<bean id="teacher" class="com.lzq.spring.model.teacher">
<constructor-arg index="0" value="01"></constructor-arg>
<constructor-arg index="1" value="岳云"></constructor-arg>
<constructor-arg index="2" value="45"></constructor-arg>
</bean>
<bean id="Person" class="com.lzq.spring.model.Person">
<property name="name" value="月月鸟"></property>
<property name="age" value="18"></property>
</bean>
如下图所示,在teacher类和person类当中,对变量进行封装的方法,一个是无参构造函数(或者是无构造函数)使用set方法,有参的直接this.变量
获取
基于注解的装配
基于XML的装配可能会导致XML配置文件过于臃肿,给后续的维护和升级带来一定的困难。为此,Spring提供了对Annotation(注解)技术的全面支持。
主要注释有以下几种:
- @Component:用于描述Spring中的Bean,它是一个泛化的概念,仅仅表示一个组件。
- @Repository:用于将数据访问层(DAO)的类标识为Spring中的Bean 。
- @Service:用于将业务层(Service)的类标识为Spring中的Bean。
- @Controller:用于将控制层(Controller)的类标识为Spring中的Bean 。
- @Autowired:用于对Bean的属性变量、属性的setter方法及构造方法进行标注,配合对-应的注解处理器完成Bean的自动配置工作。
- @Resource:其作用与Autowired一样。@Resource中有两个重要属性:name和type。Spring将name属性解析为Bean实例名称,type属性解析为Bean实例类型。
- @Qualifier:与@Autowired注解配合使用,会将默认的按Bean类型装配修改为按Bean的实例名称装配,Bean的实例名称由@Qualifier注解的参数指定。
除了可以像示例中通过元素来配置Bean外,还可以通过包扫描的形式来配置一个包下的所有Bean:
<context:component-scan base-package="com.itheima.annotation" />
自动装配
就是将一个Bean自动的注入到到其他Bean的Property中。 Spring的元素中包含一个autowire属性,我们可以通过设置autowire的属性值来自动装配Bean。autowire属性有5个值,其值及说明下表所示:
使用自动装配的步骤:
- 修改上一节UserServiceImple和UserController,分别增加类属性的setter方法;
- 修改Spring配置文件,使用autowire属性配置Bean;
- 最后重新测试程序。
推荐阅读
-
Spring in action 读书笔记(第二章)bean的装配(java类显式配置和spring-test单元测试的使用)
-
JavaSpring Bean的装配方式
-
spring装配bean的3种方式总结
-
Spring基本用法4——创建Bean的三种方式 博客分类: Spring Spring创建Bean的三种方式静态工厂方法实例工厂方法
-
MySQL 5.6.19 二进制的装配方式
-
Java 确保某个Bean类被最后执行的几种实现方式
-
Spring ---- Bean的自动装配
-
spring中bean的注入方式 & 循环依赖
-
Spring中实例化bean的四种方式详解
-
详解Spring中bean的几种注入方式