Spring - constructor-arg和property的使用示例
一、说明
    constructor-arg:通过构造函数注入。 
    property:通过setter对应的方法注入。
二、property使用实例
1、Model代码:
public class Person {
    private String name;
    private int age;
    private String className;
    private String grade;
    private List<Person> friends = new ArrayList<>();
    public List<Person> getFriends() {
        return friends;
    }
    public void setFriends(List<Person> friends) {
        this.friends = friends;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getClassName() {
        return className;
    }
    public void setClassName(String className) {
        this.className = className;
    }
    public String getGrade() {
        return grade;
    }
    public void setGrade(String grade) {
        this.grade = grade;
    }
    public String toString(){
        return "Person [name=" + name + ", classname=" + className +", age=" + age+", grade=" + grade+", friends=\n" +friends+ "]";
    }
}
2、xml配置:
<bean id="person" class="models.Person">
<property name="age" value="22"/> //通过setXXX方法,所以Person对象属性不用全部设置,classname和grade未设置
<property name="name" value="liuzg"/>
<property name="friends"> //通过ref 传入已经初始化的bean wangxin和lirifeng
<list> //liuzg有两个朋友 wangxin和lirifeng
<ref bean="wangxin"/> //local只能在同一个XML中实现id引入,而bean可以跨XML文件引入,同时bean可以根据name属性进行引用,使用范围明显较广,更强大。
<ref bean="lirifeng"/>
</list>
</property>
</bean>
<bean id="wangxin" class="models.Person">
<property name="age" value="22"/>
<property name="name" value="wangxin"/>
</bean>
<bean id="lirifeng" class="models.Person">
<property name="age" value="22"/>
<property name="name" value="lirifeng"/>
</bean>
三、constructor-arg使用实例
1、Model代码:
public class Student {
    private String name;
    private int age;
    private String className;
    private String grade;
    private List<Person> friends = new ArrayList<>();
    public Student() {
    }
    public Student(String name,int age,String className,String grade,List<Person> friends){
        this.friends = friends;
        this.name = name;
        this.age = age;
        this.className = className;
        this.grade = grade;
    }
    public String toString(){
        return "student [name=" + name + ", classname=" + className +", age=" + age+", grade=" + grade+", friends=\n" +friends+ "]";
    }
}
2.xml配置
<bean id="liangyuqi" class="models.Student">
<constructor-arg index="0" value="liangyuqi"/> //通过构造函数,需根据函数形参 全部设置
<constructor-arg name="age" value="18"/> //可以根据index或者name设置属性,下标从0开始。boolean的值既可以用0/1填充,也可以用true/false填充。
<constructor-arg index="2" value="1401"/>
<constructor-arg index="3" value="95"/>
<constructor-arg index="4" ref="person"/>
</bean>
四、Test
1.测试代码
public class MyTest {
    public void testSpring(){
        ApplicationContext context = new ClassPathXmlApplicationContext("test.xml");  //1.读取spring初始化的配置文件  
        Object p = context.getBean("liangyuqi"); //2.根据bean获取Student实现类对象 p 
        System.out.println(p);
    }
}
2.输出结果 : liangyuqi的朋友有liuzg,以及显示liuzg的friends set wnagxin,lirifeng

Spring - constructor-arg和property的使用示例的更多相关文章
- 简单理解Spring之IOC和AOP及代码示例
		
Spring是一个开源框架,主要实现两件事,IOC(控制反转)和AOP(面向切面编程). IOC 控制反转,也可以称为依赖倒置. 所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B, ...
 - (转)Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例
		
http://www.ityouknow.com/springboot/2017/09/23/spring-boot-jpa-thymeleaf-curd.html 这篇文章介绍如何使用 Jpa 和 ...
 - Spring Boot(十五):spring boot+jpa+thymeleaf增删改查示例
		
Spring Boot(十五):spring boot+jpa+thymeleaf增删改查示例 一.快速上手 1,配置文件 (1)pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 ...
 - Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例
		
这篇文章介绍如何使用 Jpa 和 Thymeleaf 做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个 Demo 来试试它的效果,越 ...
 - Spring MVC-表单(Form)处理示例(转载实践)
		
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_form_handling.htm 说明:示例基于Spring MVC 4.1.6 ...
 - Spring 中出现Element : property Bean definitions can have zero or more properties. Property elements correspond to JavaBean setter   methods exposed by the bean classes. Spring supports primitives, refer
		
在这个ApplicationContext.xml文件中出现 如下报错 Element : property Bean definitions can have zero or more proper ...
 - spring boot 日志介绍 以及 logback配置示例
		
https://www.cnblogs.com/flying607/p/7827460.html 以下是springboot的一个局部依赖关系: 可以看到,java util logging(jul) ...
 - spring security 3 自定义认证,授权示例
		
1,建一个web project,并导入所有需要的lib. 2,配置web.xml,使用Spring的机制装载: <?xml version="1.0" encoding=& ...
 - Spring Session实现分布式session的简单示例
		
前面有用 tomcat-redis-session-manager来实现分布式session管理,但是它有一定的局限性,主要是跟tomcat绑定太紧了,这里改成用Spring Session来管理分布 ...
 
随机推荐
- appium定位之xpath定位
			
前面也说过appium也是以webdriver为基的,对于元素的定位也基本一致,只是增加一些更适合移动平台的独特方式,下面将着重介绍xpath方法,这应该是UI层元素定位最强大的方法啦! 以淘宝app ...
 - i春秋SRC部落携手同程SRC发布首届漏洞提交任务
			
[部落守卫者集结令]拿巨额奖金?上白帽子排行榜?近距离膜拜大佬?学技术?掌握窍门?又或者你是个责任感爆棚想要互联网行业安全的有志青年?加入i春秋部落守卫者(The Guarders),统统满足你! [ ...
 - Eclipse 刚检出的项目 Build path 的时候提示 No action available
			
问题: 从SVN检出来的项目发现无法进行build path,也不报错,任何类之间也无法关联(Ctrl+右键无法点进去). 原因: .classpath是Eclipse的工程文件,别人没有将工程的信息 ...
 - LeetCode--No.015   3Sum
			
15. 3Sum Total Accepted: 131800 Total Submissions: 675028 Difficulty: Medium Given an array S of n i ...
 - 顺序栈,链栈,队列java实现
			
顺序栈 /** * 顺序栈 * */ public class SqStack { //栈的大小 private int maxSize; //栈顶指针 private int top; privat ...
 - Python基础教程(第3版)   笔记(二)
			
1.8模块Python提供了完成(某人的年 龄为32.9,并想将这个值向下圆整为32,因为他还没有满33岁)这种任务的函 数floor.导入模块,可以使用特殊命令import.函数floor包含在模块 ...
 - Rsync文件同步工具
			
前段时间因公司需求,需要把备份的文件进行同步保存,后面就想到了我们大家都最熟悉的文件同步工作Rsync,于是就捣鼓了一下午时间,然后总结了下大概过程和参数详情. 首先了解了下rsync同步的大致原理: ...
 - 【适合公司业务】全网最详细的IDEA里如何正确新建【普通或者Maven】的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【多个子项目】并存)(图文详解)
			
不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...
 - centos7 常用工具包安装
			
.虚拟机上传下载组件( 支持从windows直接拖拽文件,相当好用) yum -y install lrzsz rz+文件名(上传) sz+文件名(下载) .gcc (nginx之类由c语言开发的,编 ...
 - 认识Nginx,理解原理和功能
			
前端工程师在理解Nginx之后,就能更好的与后端工程师沟通,为了能提高工作效率,这两天抽空读了<Nginx高性能Web服务器实战教程>. 一.Nginx Nginx是一款高性能的Web服务 ...