使用构造器装配属性

beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean id="personDao" class="test.spring.dao.impl.PersonDaoBean" />
    <bean id="personService" class="test.spring.service.impl.PersonServiceBean3">
        <constructor-arg index="0" type="test.spring.dao.PersonDao" ref="personDao"/>
        <constructor-arg index="1" value="LinDL"/>
    </bean>

</beans> 

PersonDao

package test.spring.dao;

public interface PersonDao {

    public abstract void add();

}

PersonDaoBean

package test.spring.dao.impl;

import test.spring.dao.PersonDao;

public class PersonDaoBean implements PersonDao {

    @Override
    public void add(){
        System.out.println("执行PersonDaoBean里的test1()方法");
    }
}

PersonService2

package test.spring.service;

public interface PersonService2 {

    public abstract void save();
}

PersonServiceBean3(通过构造器装配属性)

package test.spring.service.impl;

import test.spring.dao.PersonDao;
import test.spring.service.PersonService2;

public class PersonServiceBean3 implements PersonService2 {

    private PersonDao personDao;
    private String name;

    public PersonServiceBean3(PersonDao personDao, String name) {
        this.personDao = personDao;
        this.name = name;
    }

    public PersonDao getPersonDao() {
        return personDao;
    }

    public void setPersonDao(PersonDao personDao) {
        this.personDao = personDao;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void save() {
        // TODO Auto-generated method stub
        personDao.add();
        System.out.println(name);
    }
}

客户端

package test.spring.jnit;

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

import test.spring.service.PersonService;
import test.spring.service.PersonService2;

public class SpringTest2 {
    @Test
    public void test2() {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
                "beans.xml");
        PersonService2 personService = (PersonService2) applicationContext
                .getBean("personService");
        personService.save();
    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。如需转载,请注明出处:http://blog.csdn.net/lindonglian

时间: 2024-10-13 18:30:58

使用构造器装配属性的相关文章

Spring bean的自动装配属性

bean的自动装配属性能简化xml文件配置. bean 的自动装配属性分为四种: 1.byName 2.byTyoe 3.constructor 4. autodetect byName: 它查找配置文件中的的bean的id 或者name 和本bean中的成员属性名相同的bean 自动装配 所以不用再给本bean添加peoperty标签 例:有两个类 public Class  Person{ } public Class Customer{ private Person p; public s

spring命名空间p装配属性

使用<property>元素为bean的属性装备值和引用并不太复杂.尽管如此,spring的命名空间p提供了另一种bean属性的装配方式. 命名空间p的schema url是:http://www.springframework.org/schema/p 直接看例子(还是角色跟用户的model): public class Roles { private int id; private String roleName; private Users users; //省略set get方法 //

使用Spring的命名空间p装配属性-摘自《Spring实战(第3版)》

使用<property>元素为Bean的属性装配值和引用并不太复杂.尽管如此,Spring的命名空间p提供了另一种Bean属性的装配方式,该方式不需要配置如此多的尖括号. 命名空间p的schema URL为http://www.springframework.org/schema/p.如果你想使用命名空间p,只需要在Spring的XML配置中增加如下一段声明: <?xml version="1.0" encoding="UTF-8"?> &l

JAVASE(七)面向对象:封装性(特性之一)、构造器、属性、关键字

一.封装性 1.为什么要使用封装性? 创建对象以后,可以通过对象.属性名的方法进行赋值.只能限制数据的类型,和数值的范围.但是往往我们需要更多的其它条件的限制.在属性的声明处无法限制.所以我们采用如下的方式. 使用权限修饰符对属性进行修饰,在其它的类中就无法直接对属性进行调用和赋值. 提供公共的方法,通过方法给属性进行赋值,或者通过方法获取值.在方法的内部我们可以对属性的赋值的进行条件的限制. 2.封装性思想具体的代码体现: 封装性的体现(狭义上) 1.私有化属性 2.提供公共的set/get方

【Java Web开发学习】Spring构造器和属性注入

测试类 public class Construct { private String address; private long phone; public Construct(String name, int age) { System.out.println("> " + name + ", " + age); } public String getAddress() { return address; } public void setAddress(

Spring如何装配各种集合类型的属性

在前面我们已经会注入基本类型对象和其他bean,现在我们就来学习如何注入各种集合类型. Spring如何装配各种集合类型的属性 首先新建一个普通的Java Project,名称为spring_collection,并迅速搭建好Spring的开发环境. 接着在src目录下新建一个cn.itcast.service包,并在该包下创建PersonService接口,其代码为: public interface PersonService { Set<String> getSets(); List&l

黑马程序员_spring2.5视频教程--视频列表

\黑马程序员_spring2.5视频教程\01Struts相关基础理论介绍.mp4; \黑马程序员_spring2.5视频教程\02搭建struts开发环境.mp4; \黑马程序员_spring2.5视频教程\03用struts开发简单的登陆示例程序.mp4; \黑马程序员_spring2.5视频教程\10.使用构造器装配属性.mp4; \黑马程序员_spring2.5视频教程\11Resource注解完成属性装配.mp4; \黑马程序员_spring2.5视频教程\12编码剖析@Resourc

[原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Spring XML配置--使用注解装配(@Atutowired、@Inject、@Resource)

陈科肇--http://blog.csdn.net/u013474104/article/details/44352765 ======= 1.装配术语 创建应用对象之间协作关系的行为通常被称为装配 2.使用注解装配 Spring是从Spring2.5开始引入使用注解自动装配的. Spring容器是默认禁用注解装配的,因此如果要使用Spring的注解装配,你必须启用它.启用方式:使用Spring的context命名空间配置中的<context:annotation-config>元素,配置启用