`
wj131
  • 浏览: 142235 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

spring中bean的注入依赖方式

阅读更多

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;//该属性的getset方法把接口中的功能实现了

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>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2
0
分享到:
评论

相关推荐

    Spring定义bean的三种方式和自动注入

    此外,通过`property`标签注入依赖,如`teacher`字段,使用`ref`属性引用另一个Bean。这种方式需要Bean有对应的setter方法,以便Spring进行依赖注入。 ```xml &lt;bean id="student" class="test.Student"&gt; 张三"/&gt;...

    spring依赖注入bean

    综上所述,Spring 的依赖注入和 Bean 管理不仅限于 Web 应用,也可以方便地应用于 Java Application 中,通过 XML 或注解配置来实现组件间的解耦,提高代码质量。这个示例项目 `test` 可能包含了实现上述功能的代码...

    spring学习:依赖注入的几种方式讨论

    在类或方法上使用`@Autowired`注解可以自动匹配并注入依赖。例如: ```java @Service public class Service { @Autowired private Repository repository; } ``` `@Service`是Spring的组件注解,标记此类为一个...

    关于spring boot中几种注入方法的一些个人看法

    在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的介绍和分析。 1. @Autowired @...

    详解Spring 中如何控制2个bean中的初始化顺序

    Spring 中的 DependsOn 注解可以保证被依赖的 bean 先于当前 bean 被容器创建。例如,在 B 上加上注解 @DependsOn({"a"}),这样可以保证 A 先于 B 被初始化。 需要注意的是,bean 属性的注入是在初始化方法调用之前...

    spring依赖注入三种方式 测试源码

    接口注入在Spring中较少使用,主要是通过实现特定的接口,由Spring提供实现该接口的方法来注入依赖。这种方式对类的侵入性较大,但可以避免使用setter方法。在实际应用中,更多地会采用构造器注入和设值注入。 ...

    Spring依赖注入的方式

    接口注入在Spring中相对较少使用,主要是通过实现特定的接口并由Spring提供实现来注入依赖。这种方式通常适用于需要动态地改变对象的行为,比如AOP代理。 ```java public interface ApplicationContextAware { ...

    java巩固练习Spring 的bean注入方式有几种demo例子

    首先,我们来了解Spring中的bean注入主要有以下四种方式: 1. **设值注入(Setter Injection)**:这是最常见的一种注入方式,通过setter方法来设置bean的属性。在XML配置文件中,我们可以通过`&lt;property&gt;`标签来...

    Spring-注入依赖,AOP,自动注入Bean

    在Spring框架中,依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)是两大核心特性,同时自动注入Bean也是Spring管理对象的一种常见方式。让我们深入探讨这些概念。 首先,...

    spring依赖注入

    其次,setter注入是通过在类中声明setter方法,Spring容器会调用这些方法来注入依赖。这种方式更灵活,允许在对象创建后改变依赖,但可能导致对象在不完整状态下被初始化。 为了实现这些注入,我们需要在Spring配置...

    Spring 三种依赖注入方式.doc

    Spring 框架中提供了多种依赖注入方式,其中最常用的三种依赖注入方式分别是接口注入、设值注入和构造函数注入。下面,我们将分别对这三种依赖注入方式进行详细的介绍和分析。 一、接口注入 接口注入是指通过接口...

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    1. **类型匹配**:Spring首先尝试按类型匹配bean,找到最适合的bean注入到目标字段或构造函数。 2. **按名称匹配**:如果存在多个相同类型的bean,Spring会检查目标字段或构造函数是否有`@Qualifier`注解,如果有,...

    Spring三种注入方式(三)

    这种方式是通过实现特定的接口,由Spring在运行时动态调用接口方法注入依赖。Spring没有内置的接口注入机制,但可以通过实现`InitializingBean`或`DisposableBean`接口来自定义初始化和销毁逻辑。例如: ```java ...

    Spring (bean怎样注入值)学习实例

    在Spring框架中,Bean的注入是其核心特性之一,它允许开发者通过声明式的方式管理对象的依赖关系。本文将深入探讨如何在Spring中通过XML配置文件对Bean进行值的注入,包括List、Set和Map等集合类型的注入。 首先,...

    spring bean XML配置入门

    一旦XML配置加载到Spring容器中,容器将根据配置创建Bean实例,并按照定义进行初始化、依赖注入,最后完成Bean的生命周期管理。 10. **实践操作**: 在实际开发中,我们可以使用Eclipse的Spring插件来简化Bean...

    spring依赖注入底层详解

    在Spring中,依赖注入可以通过构造器注入、设值注入和接口注入三种方式实现。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成注入。这种方式在创建对象时就确保了所有依赖都已就绪,适合于对象的依赖关系...

    Spring_依赖注入_面向接口编程_不同加载方式

    同时,`@Autowired`注解可以用来自动注入依赖。此外,Java配置类(使用`@Configuration`注解)也是一种流行的加载bean的方式,它将bean的定义移到了Java代码中,具有更好的代码可读性和可维护性。 总的来说,本项目...

    day38 17-Spring的Bean的属性注入:注解方式

    在Spring框架中,Bean的属性注入是核心功能之一,它允许开发者在不编写代码的情况下配置对象的依赖关系。本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中...

    spring依赖注入的实现原理

    随着Java的发展,Spring引入了注解驱动的配置方式,如`@Component`,`@Service`,`@Repository`和`@Controller`用于标记Bean,`@Autowired`用于自动注入依赖。 4. **反射(Reflection)** Spring使用反射机制来...

Global site tag (gtag.js) - Google Analytics