spring中对bean的注入方法。来获得bean对象,以及该类的属性的值
以该Dept类为例子
package org.www.bean;
public class Dept { private Integer deptid; private String deptname;
private Integer deptnum; private String deptdesc; public Dept() {}
public Dept(Integer deptid, String deptname, Integer deptnum,
String deptdesc) {
this.deptid = deptid; this.deptname = deptname;
this.deptnum = deptnum; this.deptdesc = deptdesc;
}......get和set方法略}
1、 不带参的构造子注入方式::
通过不带参数的构造方法得到的对象。
比如说:<bean id="dept1" class="org.www.bean.Dept" />
解析该application.xml文件就会获得该对象
ApplicationContext ctx = new ClassPathXmlApplicationContext( "applicationContext.xml");
Dept d = (Dept) ctx.getBean("dept1");// 从spring容器以对象的唯一编号和名称找到对象返回
System.out.println(d);// 结果为:org.www.bean.Dept@b66cc
2、 通过带参的构造子注入方式:
需要在该类中有有带惨的构造方法
<bean id="dept3" class="org.www.bean.Dept">
<constructor-arg type="java.lang.Integer" value="1"></constructor-arg>
<constructor-arg type="java.lang.String" value="市场部"></constructor-arg>
<constructor-arg type="java.lang.Integer" value="2"></constructor-arg>
<constructor-arg type="java.lang.String" value="行政相关工作!"></constructor-arg></bean>获得方式如上。
3、 set方法注入
需要在该类中有set方法
<bean id="add" class="org.www.bean.Address">
<property name="deptid" value="1"></property>
<property name="deptname" value="市场部"></property>
<property name="deptnum" value="22"></property>
<property name="deptdesc" value="市场相关"></property>
</bean>
获得方式如上。
4、接口注入方法
现在一般写dao层和service层的时候一般使用接口编程,而使用接口编程可以很好的解耦
下载模拟的是接口注入:
在dao层:
package org.www.dao;
import java.util.List;
public interface Peopledao {
void setPeoples(List peoples);//??传递一个参数
List getPeoples(); //返回一个集合
}
在daoi层中,也就是dao的实现类
package org.www.daoi;
import java.util.List;
import org.www.dao.Peopledao;
public class Peopeldaoi implements Peopledao {
@SuppressWarnings("unused")
private List peoples;//该属性的get和set方法把接口中的功能实现了
public Peopeldaoi() {}
public List getPeoples() {
return peoples;}
public void setPeoples(List peoples) {
this.peoples = peoples;}}
在service层
package org.www.service;
import java.util.List;
public interface Service {
public List getPeoples();
}
在servicei层,service实现类
package org.www.servicei;
import java.util.List;
import org.www.dao.Peopledao;
import org.www.service.Service;
public class Servicei implements Service {
private Peopledao dao;//调用了dao,该dao属性是接口
public Servicei() {}
public List getPeoples() { List list = this.getDao().getPeoples(); return list;}
public Peopledao getDa return dao;}
public void setDao(Peopledao dao) { this.dao = dao;}}
看这个实现类,定义的是private Peopledao dao;
通过set方法注入的是该dao的实现类
在application.xml文件中的配置是:
先定义的是dao的实现类:
<bean id="peopledaoi" class="org.www.daoi.Peopeldaoi">
<property name="peoples"><!-- 通过set容器依赖注入,即反调set方法 -->
<list>
<ref local="people"/><!-- local指的是在本xml文件中 -->
<bean class="org.www.bean.People">
<property name="pid" value="2"></property>
<property name="name"><value>李四</value></property>
<property name="sex" value="女"></property>
<property name="birdthday" ref="date"></property>
<property name="address" ref="add"></property>
</bean>
<ref bean="people"/><!-- 在所有的xml文件中取找 -->
</list>
</property>
</bean>
在service的实现类中,定义的dao属性变量,指向该dao的实现类
<bean class="org.www.servicei.Servicei" id="service">
<property name="dao" ref="peopledaoi"></property>
</bean>
分享到:
相关推荐
此外,通过`property`标签注入依赖,如`teacher`字段,使用`ref`属性引用另一个Bean。这种方式需要Bean有对应的setter方法,以便Spring进行依赖注入。 ```xml <bean id="student" class="test.Student"> 张三"/>...
综上所述,Spring 的依赖注入和 Bean 管理不仅限于 Web 应用,也可以方便地应用于 Java Application 中,通过 XML 或注解配置来实现组件间的解耦,提高代码质量。这个示例项目 `test` 可能包含了实现上述功能的代码...
在类或方法上使用`@Autowired`注解可以自动匹配并注入依赖。例如: ```java @Service public class Service { @Autowired private Repository repository; } ``` `@Service`是Spring的组件注解,标记此类为一个...
在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的介绍和分析。 1. @Autowired @...
Spring 中的 DependsOn 注解可以保证被依赖的 bean 先于当前 bean 被容器创建。例如,在 B 上加上注解 @DependsOn({"a"}),这样可以保证 A 先于 B 被初始化。 需要注意的是,bean 属性的注入是在初始化方法调用之前...
接口注入在Spring中较少使用,主要是通过实现特定的接口,由Spring提供实现该接口的方法来注入依赖。这种方式对类的侵入性较大,但可以避免使用setter方法。在实际应用中,更多地会采用构造器注入和设值注入。 ...
接口注入在Spring中相对较少使用,主要是通过实现特定的接口并由Spring提供实现来注入依赖。这种方式通常适用于需要动态地改变对象的行为,比如AOP代理。 ```java public interface ApplicationContextAware { ...
首先,我们来了解Spring中的bean注入主要有以下四种方式: 1. **设值注入(Setter Injection)**:这是最常见的一种注入方式,通过setter方法来设置bean的属性。在XML配置文件中,我们可以通过`<property>`标签来...
在Spring框架中,依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)是两大核心特性,同时自动注入Bean也是Spring管理对象的一种常见方式。让我们深入探讨这些概念。 首先,...
其次,setter注入是通过在类中声明setter方法,Spring容器会调用这些方法来注入依赖。这种方式更灵活,允许在对象创建后改变依赖,但可能导致对象在不完整状态下被初始化。 为了实现这些注入,我们需要在Spring配置...
Spring 框架中提供了多种依赖注入方式,其中最常用的三种依赖注入方式分别是接口注入、设值注入和构造函数注入。下面,我们将分别对这三种依赖注入方式进行详细的介绍和分析。 一、接口注入 接口注入是指通过接口...
1. **类型匹配**:Spring首先尝试按类型匹配bean,找到最适合的bean注入到目标字段或构造函数。 2. **按名称匹配**:如果存在多个相同类型的bean,Spring会检查目标字段或构造函数是否有`@Qualifier`注解,如果有,...
这种方式是通过实现特定的接口,由Spring在运行时动态调用接口方法注入依赖。Spring没有内置的接口注入机制,但可以通过实现`InitializingBean`或`DisposableBean`接口来自定义初始化和销毁逻辑。例如: ```java ...
在Spring框架中,Bean的注入是其核心特性之一,它允许开发者通过声明式的方式管理对象的依赖关系。本文将深入探讨如何在Spring中通过XML配置文件对Bean进行值的注入,包括List、Set和Map等集合类型的注入。 首先,...
一旦XML配置加载到Spring容器中,容器将根据配置创建Bean实例,并按照定义进行初始化、依赖注入,最后完成Bean的生命周期管理。 10. **实践操作**: 在实际开发中,我们可以使用Eclipse的Spring插件来简化Bean...
在Spring中,依赖注入可以通过构造器注入、设值注入和接口注入三种方式实现。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成注入。这种方式在创建对象时就确保了所有依赖都已就绪,适合于对象的依赖关系...
同时,`@Autowired`注解可以用来自动注入依赖。此外,Java配置类(使用`@Configuration`注解)也是一种流行的加载bean的方式,它将bean的定义移到了Java代码中,具有更好的代码可读性和可维护性。 总的来说,本项目...
在Spring框架中,Bean的属性注入是核心功能之一,它允许开发者在不编写代码的情况下配置对象的依赖关系。本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中...
随着Java的发展,Spring引入了注解驱动的配置方式,如`@Component`,`@Service`,`@Repository`和`@Controller`用于标记Bean,`@Autowired`用于自动注入依赖。 4. **反射(Reflection)** Spring使用反射机制来...