码迷,mamicode.com
首页 > 编程语言 > 详细

05-spring-构造注入

时间:2017-11-26 15:51:14      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:struct   机制   private   默认   work   核心技术   rgs   方法   补充   

spring中只有两大核心技术:

控制反转(IOC)&依赖注入(DI),AOP(面向切面编程)

依赖注入

指利用配置文件的关系,来决定类之间的引用关系,以及数据的设置操作。

 

构造方法注入

默认在applicationContext文件中配置的程序都可以自动通过spring容器加载时自动对对象实例化。

但是自动进行初始化的时候,调用的是类中的无参构造方法,而且通过反射机制可以知道,无参构造方法一定比有参构造方法的实例化更容易。

但是spring简化了反射的处理机制。利用spring中的动态的特性可以直接明确调用构造方法参数。

 

构造注入之前的文章已经有了,这里只补充前面没有的内容。

除了有之前的通过index,参数类型配置bean。

还能使用参数名称描述构造方法

Dept类:

package com.Spring.Demo;

import java.beans.ConstructorProperties;

public class Dept {
    
    private Integer deptno;
    private String name;
    
    @ConstructorProperties(value={"paramDeptno","paramDeptName"})
    public Dept(Integer deptno, String name) {
        this.deptno = deptno;
        this.name = name;
    }
    @Override
    public String toString() {
        return "Dept [deptno=" + deptno + ", name=" + name + "]";
    }
}

调用这个方法:

package com.Spring.Demo;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestDept {

    public static void main(String[] args) {

        ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        Dept dept=ctx.getBean("dept",Dept.class);
        System.out.println(dept);
    }

}

Dept.java类 设置参数名称:

@ConstructorProperties(value={"paramDeptno","paramDeptName"})
    public Dept(Integer deptno, String name) {
        this.deptno = deptno;
        this.name = name;
    }

也就是说设置的时候可以使用paramDeptno来代替索引0,paramDeptName代替索引1。

利用参数名称进行设置:

    <bean id="dept" class="com.Spring.Demo.Dept">
        <constructor-arg name="paramDeptno" value="10" ></constructor-arg>
        <constructor-arg name="paramDeptName" value="开发部门" ></constructor-arg>
    </bean>

 

真使用构造方法,还是使用参数的类型和顺序编写比较方便。

05-spring-构造注入

标签:struct   机制   private   默认   work   核心技术   rgs   方法   补充   

原文地址:http://www.cnblogs.com/alsf/p/7899018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!