步骤:
(1)改写 PersionServiceBean.java ,为注入的属性加上构造方法
Java代码
package cn.com.xinli.service.impl;
import org.apache.log4j.Logger;
import cn.com.xinli.dao.PersionDao;
import cn.com.xinli.service.PersionSevice;
public class PersionServiceBean implements PersionSevice
{
Logger log=Logger.getLogger(PersionServiceBean.class);
<span style="color: #ff0000;">private PersionDao persionDao;
private String name;
public PersionServiceBean(PersionDao persionDao, String name) {
this.persionDao = persionDao;
this.name = name;
}</span>
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public PersionDao getPersionDao()
{
return persionDao;
}
public void setPersionDao(PersionDao persionDao)
{
this.persionDao = persionDao;
}
public void init()
{
log.info("初始化资源");
}
public PersionServiceBean()
{
log.info("我被实例化了");
}
public void save()
{
log.info("name:"+name);
this.persionDao.add();
}
public void destory()
{
log.info("释放资源");
}
}
(2) 配置beans.xml,其中配置了一个依赖属性和一个基本的String类型
Xml代码
<bean id="persionServiceBean" class="cn.com.xinli.service.impl.PersionServiceBean" init-method="init" destroy-method="destory">
<constructor-arg index="0" type="cn.com.xinli.dao.PersionDao" ref="persionDao"></constructor-arg>
<constructor-arg index="1" value="huxl"></constructor-arg>
</bean>
(3) 测试:
Java代码
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean");
ps.save();
结果:
INFO (PersionServiceBean.java:37) - 初始化资源
INFO (PersionServiceBean.java:46) - name:huxl
INFO (PersionDaoBean.java:15) - 执行了PersionDaoBean中的add()方法
分享到:
相关推荐
为了使Spring能够进行XML装配,Bean类需要满足一些条件,如提供无参构造器,为需要注入的属性提供setter方法等。 **基于注解的装配** 随着Java注解的普及,Spring引入了基于注解的装配,减少了XML配置的繁琐。主要...
在Java配置类中,可以使用`@Autowired`注解配合`@Bean`方法的参数来实现构造器注入。例如: ```java @Configuration public class AppConfig { @Bean public ExampleBean exampleBean(String dependencyValue1, ...
显式装配是指在Spring配置文件中明确指定如何注入依赖,包括setter注入和构造器注入,这种方式虽然配置繁琐,但清晰明了,易于管理和维护。在Spring Boot中,尽管自动化配置十分便捷,但仍然可以通过@Primary、@...
- **构造器注入**:在构造函数中注入依赖的bean。 4. **Bean的作用域** Spring支持五种bean的作用域: - **单例(Singleton)**:容器中只有一个实例,所有请求都返回同一个bean。 - **原型(Prototype)**:每次...
- 构造器注入:通过Bean的构造函数来注入依赖,Spring容器调用具有必要依赖参数的构造函数来创建Bean实例。 - setter方法注入:通过Bean的setter方法注入依赖,Spring容器在创建Bean实例后调用setter方法来设置依赖...
当在字段、构造器参数或方法上使用`@Autowired`时,Spring会尝试找到类型匹配的Bean并注入。例如: ```java @Service public class UserService { @Autowired private UserRepository userRepository; } ``` 在...
7. **@Primary**:当有多个候选Bean满足自动装配条件时,可以使用`@Primary`注解标记首选的Bean,Spring将优先选择这个Bean注入。 8. **@Qualifier**:在有多个相同类型Bean的情况下,`@Qualifier`注解可以用来指定...
6. **配置类与属性源**:Spring Boot允许从application.properties或application.yml文件中读取配置属性,并通过@ConfigurationProperties注解将这些属性映射到Java对象上,方便在Bean装配时使用。 7. **条件注解...
2. **构造器注入**:使用`<constructor-arg>`标签指定构造函数参数,或者在注解配置中使用`@Autowired`配合构造函数。 3. **setter注入**:通过setter方法注入依赖,同样可以通过XML或注解实现。 4. **接口注入**...
3. **构造器注入**: - 对于需要通过构造函数创建的对象,可以使用`<constructor-arg>`标签。例如: ```xml <bean id="exampleBean" class="com.example.ExampleClass"> <constructor-arg value="exampleValue...
1. **构造器注入**: Spring支持通过构造函数来注入依赖。当一个类有多个构造函数时,可以使用`@Autowired`注解与`@Qualifier`结合,指定注入哪个构造函数。这种方式确保对象在创建时就完成了依赖的设置。 2. **...
2. **构造器注入**:Spring可以通过调用带有多个参数的构造函数来注入依赖。在bean配置文件中,使用`<constructor-arg>`标签指定构造函数参数。 3. **接口注入**:Spring提供了一个`ApplicationContextAware`接口,...
Spring提供了多种注入方式,包括构造器注入、setter注入和接口注入等。通过这种方式,我们可以实现依赖反转,使代码更具灵活性和可测试性。 在嵌套Bean的场景下,一个Bean可以包含另一个或多个Bean作为其属性。例如...
- **构造器注入**:通过构造器传递依赖项。 - **Setter注入**:通过Setter方法设置依赖项。 - **字段注入**:直接将依赖项注入到对象的字段中。 通过注入机制,程序员无需手动调用对象的setter方法来设置依赖,而是...
当不使用构造注入时,Spring会自动寻找无参构造器来创建Bean实例。因此,为了使Spring能够正确实例化Bean,你需要确保Bean类有一个公共的无参构造器。默认情况下,Spring会对Bean的属性进行默认初始化,即基本类型设...
- **实例化**:Spring 根据 BeanDefinition 创建 Bean 实例,可能涉及构造器注入和属性设置。 - **初始化**:包括调用初始化方法,执行 Bean 生命周期中的其他初始化逻辑。 7. **延迟初始化与销毁**: - **延迟...
这意味着在使用`@Resource`时,你可以选择通过`name`属性显式指定bean的名称,也可以省略此属性,让Spring自动按类型装配。相比于`@Autowired`,`@Resource`提供了更灵活的依赖查找策略。 #### 三、`@Qualifier`的...
在Spring框架中,自动装配(Auto-Wiring)是一种便捷的方式来管理bean之间的依赖关系,它能够自动将所需的bean注入到目标bean中,而无需显式配置。然而,自动装配并非适用于所有场景,它存在一些限制。以下是一些...
- 构造器注入:通过带有参数的构造函数来设置Bean的依赖。 - setter注入:使用setter方法来注入依赖。 - 属性注入:通过直接设置Bean的属性值。 - 方法注入:通过调用Bean的方法来注入依赖。 5. Spring Bean 的...