spring中的属性注入(XML方式注入)

原创 2018年04月16日 19:05:26

1:属性注入:是指在创建对象的时候,向类里面的属性设置值


2:属性注入的三种方式:

    1:使用属性的set方式注入

    private String username;
    private String password;
    public void setUsername(String username) {
        this.username = username;
    }
    
    public void setPassword(String password) {
        this.password = password;
    }
    
    User user=new User();
    user.setUsername("zhangsan");

     2:有参数构造注入

   private String username;
    public User(String username){
        this.username=username;
    }
    
    User user=new User("lucy");

    3:使用接口注入

public interface Dao{
    public void delete(String name){};
}

public class DaoImp implements Dao{
   private String name;
    
    @Overrider
    public void delete(String name){
    this.name=name;
   }
}

但是!!在spring中只支持前面两种注入方式!!

  

3:Spring中进行属性注入

    1):使用构造器注入

public class ConstructorDI {
    private String username;
    public ConstructorDI(String username) {
        this.username = username;
    }
    public void test1(){
        System.out.println("有参构造方法注入属性"+username);
    }
}

  xml文件

public class ConstructorDI {
    private String username;
    public ConstructorDI(String username) {
        this.username = username;
    }
    public void test1(){
        System.out.println("有参构造方法注入属性"+username);
    }
}

    单元测试  

    @Test
    public void constructorTest(){
        ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");
        ConstructorDI setdi=(ConstructorDI) context.getBean("demo");
        setdi.test1();
    }
    

    2):使用set方法进行注入   

public class Book {
    private String bookname;
    //set方法
    public void setBookname(String bookname) {
        this.bookname = bookname;
    }
    //测试方式
    public void demoBook(){
        System.out.println("通过set方法注入属性"+bookname);
    }
}

     xml文件配置

    <!--使用set方法注入属性-->
    <bean id="book" class="com.PropertyInspect.Book">
        <!--设置属性值-->
        <property name="bookname" value="c语言"></property>
    </bean>

  单元测试: 

    @Test
    public void setDi(){
        ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");
        Book book=(Book) context.getBean("book");
        book.demoBook();
    }


Spring使用注解的方式注入属性时的xml文件配置

@Resource默认按名称进行装配,如果找不到符合的名称,则按类型装配;@Autowired默认按类型进行装配 ...
  • free_wilson
  • free_wilson
  • 2013-05-21 13:42:31
  • 1325

Spring属性注入

  • 2014年04月12日 22:25
  • 10KB
  • 下载

Spring属性注入的两种方式

asdf
  • yezis
  • yezis
  • 2014-04-12 18:49:36
  • 3817

Spring中属性注入的几种方式以及复杂属性的注入

在Spring框架中,属性的注入我们有多种方式,我们可以通过构造方法注入,可以通过set方法注入,也可以通过p名称空间注入,方式多种多样,对于复杂的数据类型比如对象、数组、List集合、map集合、P...
  • u012702547
  • u012702547
  • 2017-03-12 14:51:33
  • 4774

Spring三种注入属性的方式

Spring三种方法注入属性 1.        准备工作: 1)        新建Dao包,Service包 2)        在每个包内新建对应的接口,以及impl包 Us...
  • qq_28174471
  • qq_28174471
  • 2016-09-05 18:25:52
  • 2001

spring 静态属性的注入技巧

在用@Autowired自动注入属性的时候,如果属性呗声明为静态的,就会注入失败,报空指针异常。                                           静态注入的技巧 ...
  • An__Ye
  • An__Ye
  • 2015-12-02 13:59:01
  • 1441

Spring的《XML显式装配bean》之通过属性property注入bean

这篇blog主要是介绍两点: 1. 怎样通过属性向对象注入值? 2. 怎样通过属性向对象注入另一个对象的引用? 这里的给对象注入值不是通过构造器注入,而是通过setter方法直接给对象的属...
  • u010853261
  • u010853261
  • 2017-01-21 22:43:20
  • 3437

Spring基础之属性注入总结

spring是开源的轻量级框架,核心主要两部分: (1)aop:面向切面编程,扩展功能不是修改源代码实现 (2)ioc:控制反转, - 比如有一个类,在类里面有方法(不是静态的方法),调用类里面...
  • qq_25827845
  • qq_25827845
  • 2016-12-26 20:04:36
  • 4472

spring的属性注入和构造器注入

spring在向IOC容器中注入Bean的时候,有三种注入方式: 属性注入 构造器注入 工厂方法注入 平常中用到的前两种方法较多,下面对前两种方法举例。 一、属性注入1、创建一个car类,作为注入的...
  • u010502101
  • u010502101
  • 2017-11-19 22:19:12
  • 303

Spring高级注入之属性值注入

实际应用中,某个实例的属性可能是另一个对象的一个属性,Spring支持将bean实例的属性值直接赋值给一个变量属性值的注入,是通过PropertyPathFactoryBean完成的,Property...
  • daryl715
  • daryl715
  • 2007-03-27 16:31:00
  • 7481
收藏助手
不良信息举报
您举报文章:spring中的属性注入(XML方式注入)
举报原因:
原因补充:

(最多只允许输入30个字)