在resources里面新建applicationContext.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-4.3.xsd">
<!--构造方法注入-->
<bean id="book1" class="com.ssz.entity.Book">
<constructor-arg name="name" value="张三三"/>
</bean>
<bean id="book2" class="com.ssz.entity.Book">
<constructor-arg name="id" value="50"/>
<constructor-arg name="name" value="李思思"/>
</bean>
<!--setter方法注入-->
<bean id="book3" class="com.ssz.entity.Book" scope="prototype">
<property name="id" value="100"/>
<property name="name" value="王五五"/>
<property name="price" value="30"/>
</bean>
<!--setter方法注入+ 集合setter方法注入-->
<bean id="book4" class="com.ssz.entity.Book" scope="prototype">
<property name="id" value="200"/>
<property name="name" value="赵六六"/>
<property name="price" value="40.08"/>
<property name="address">
<array>
<value>郑州市</value>
<value>开封市</value>
<value>南阳市</value>
<value>洛阳市</value>
</array>
</property>
</bean> <!--User类-->
<bean id="user" class="com.ssz.entity.User" destroy-method="close" init-method="init" >
<property name="id" value="001"/>
<property name="name" value="王九九"/>
<property name="age" value="26"/>
<property name="address" value="河南省郑州市"/>
</bean> <bean id="user2" class="com.ssz.entity.User">
<property name="id" value="002"/>
<property name="name" value="孙十十"/>
<property name="age" value="33"/>
<property name="address" value="河南省开封市"/>
</bean> <!--setter方法注入+ array注入-->
<bean id="book5" class="com.ssz.entity.Book" scope="prototype">
<property name="id" value="300"/>
<property name="name" value="孙七七"/>
<property name="price" value="60"/>
<property name="address">
<array>
<value>郑州市</value>
<value>开封市</value>
<value>南阳市</value>
<value>洛阳市</value>
</array>
</property>
</bean> <!--setter方法注入+ array注入 + list + map + set + Properties 集合-->
<bean id="book6" class="com.ssz.entity.Book">
<property name="id" value="400"/>
<property name="name" value="钱八八"/>
<property name="price" value="70"/>
<property name="address">
<!--array-->
<array>
<value>郑州市</value>
<value>开封市</value>
<value>南阳市</value>
<value>洛阳市</value>
</array>
</property> <!--list-->
<property name="list">
<list>
<value>10</value>
<value>100</value>
<value>1000</value>
</list>
</property>
<property name="user" ref="user2">
</property> <!--map-->
<property name="map">
<map>
<entry key="u1" value-ref="user"/>
<entry key="u2" value-ref="user"/>
</map>
</property> <!--set-->
<property name="set">
<set>
<value>java</value>
<value>C语言</value>
<value>C++</value>
<value>PHP</value>
</set>
</property> <!--Properties 集合-->
<property name="pro">
<props>
<prop key="k1">pt1</prop>
<prop key="k2">pt1</prop>
<prop key="k3">pt1</prop>
<prop key="k4">pt1</prop>
</props>
</property>
</bean> </beans>

lombok依赖

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>

创建测试类

package com.ssz;

import com.ssz.entity.Book;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.List; public class Demo {
@Test
public void tt(){
BeanFactory bf=new ClassPathXmlApplicationContext("applicationContext.xml");//建立bean工厂
//Book book1=bf.getBean("book2",Book.class);
// Book book1=bf.getBean(Book.class);
//Book book2=bf.getBean("book3",Book.class);
//Book book2=bf.getBean(Book.class);
// Book b=bf.getBean("book",Book.class);
// book.setId(100);
// book.setName("C语言入门");
//System.out.println(book1.getPrice());
//System.out.println(book2);
//System.out.println(book1==book2);
// System.out.println(book1);
// Book bk1=bf.getBean("book4",Book.class);
// Book bk2=bf.getBean("book4",Book.class);
// Book bk3=bf.getBean("book4",Book.class);
// System.out.println(bk1==bk2);
// System.out.println(bk1==bk3);
// System.out.println(bk2==bk3);
// Book book1=bf.getBean("book6",Book.class);
// System.out.println(book1);
// for (String addr:book1.getAddress()){
// System.out.println(addr);
// }
Book book=bf.getBean("book5",Book.class);
System.out.println(book);
}
@Test
public void bb(){
// BeanFactory bf1=new ClassPathXmlApplicationContext("applicationContext.xml");
ClassPathXmlApplicationContext bf1=new ClassPathXmlApplicationContext("applicationContext.xml");
Book bk=bf1.getBean("book6",Book.class);
System.out.println(bk.getMap());
System.out.println(bk.getPro().getProperty("k1"));
for (Integer i: bk.getList()){
System.out.println(i);
}
bf1.close();
}
}

spring框架 构造方法注入的更多相关文章

  1. spring框架bean注入

    今天学习了spring框架,刚刚入门简单的了解了spring并学习了bean的注入IOC:IOC(Inversion of Control,控制反转)不是什么技术,而是一种设计思想.它的目的是指导我们 ...

  2. 04 Spring框架 依赖注入(一)

    整理了一下之前学习spring框架时候的一点笔记.如有错误欢迎指正,不喜勿喷. 上一节我们讲了几个bean的一些属性,用来限制我们实例创建过后的状态. 但是细心的我们会发现其实上面demo创建的实例并 ...

  3. spring学习笔记二:spring使用构造方法注入(set方式注入)

    项目目录树: 1.spring的依赖包配置 * SPRING_HOME/dist/spring.jar * SPRING_HOME/lib/log4j/log4j-1.2.14.jar * SPRIN ...

  4. Spring通过构造方法注入的四种方式

    通过构造方法注入,就相当于给构造方法的参数传值 set注入的缺点是无法清晰表达哪些属性是必须的,哪些是可选 的,构造注入的优势是通过构造强制依赖关系,不可能实例化不 完全的或无法使用的bean. Me ...

  5. 05 Spring框架 依赖注入(二)

    上一节我们讲了三种信息的注入,满足一个类的属性信息的注入,但是如果我们需要向一个实例中注入另一个实例呢?就像我们创建一个学生类,里边有:姓名,性别,年龄,成绩等几个属性(我习惯把类的域叫做属性),但是 ...

  6. 07 Spring框架 依赖注入(四)基于注解的依赖注入

    前面几节我们都在使用xml进行依赖的注入,但是在实际的开发中我们往往偏爱于使用注解进行依赖注入,因为这样更符合我们人的思维,并且更加快捷,本节就来讲述Spring基于注解的依赖注入: 信息注入注解 @ ...

  7. spring框架——依赖注入

    依赖注入:DI 又称控制反转:IoC 项目名字spring_DI 一.implement包中定义了两个接口Food和Person 1.接口Food package org.interfaces; pu ...

  8. 06 Spring框架 依赖注入(三)多配置文件

    在Spring前几节的学习中我们都使用了一个配置文件,就像struts2中可以包含其他的配置文件,我们能不能使用多个配置文件呢(在工程比庞大,配置比较多的时候)? Spring多配置文件分为两种: 平 ...

  9. spring框架里面的注入?

    在Spring框架里面注入可以通过1.setter方法注入:2.构造器注入:3.注入对象 在配置文件中配置如下: 前面两者不能同时注入: 入 如果前两者同时注入将会报错 将注入修改以后,如下图: 修改 ...

随机推荐

  1. [UIApplication sharedApplication].idleTimerDisabled=YES;不自动锁屏 [UIApplication sharedApplication].idleTimerDisabled=NO;自动锁屏

    [UIApplication sharedApplication].idleTimerDisabled=YES;不自动锁屏 [UIApplication sharedApplication].idle ...

  2. java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy

    java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy at sun.reflect.an ...

  3. POI2014题解

    POI2014题解 [BZOJ3521][Poi2014]Salad Bar 把p当作\(1\),把j当作\(-1\),然后做一遍前缀和. 一个合法区间\([l,r]\)要满足条件就需要满足所有前缀和 ...

  4. gcc编译把警告都输出成错误

    -Werror 把所有警告转换为错误,以在警告发生时中止编译过程

  5. 初识安卓小程序(Android短信发送器)

    首先,先创建一个安卓项目(我的版本号是4.4.2的),名字为"短信发送器" 然后在res目录下找到layout目录,找到activity_main.xml或fragment_mai ...

  6. PHP常用获取文件路径的函数集合整理

    转自: http://blog.sina.com.cn/s/blog_71ed1b870102vslg.html 我们在开发PHP项目过程中,经常会用到包含文件,所以有时候需要获取文件的相对路径或者绝 ...

  7. C# 通过二进制,将多个文件合并为一个。

    C# 通过二进制,将多个文件合并为一个. /// <summary> /// 合并文件 /// </summary> /// <param name="strD ...

  8. java web 程序---javabean实例--登陆界面并显示用户名和密码

    重点:注意大小写,不注意细节,这点小事,还需要请教 发现一个问题,也是老师当时写的时候,发现代码没错,但是就是运行问题. 大家看,那个java类,我们要求是所有属性均为私有变量,但是方法为公有的,如果 ...

  9. ubuntu安装了mysql 但是编译报错 mysql.h: No such file or directory

    在Ubuntu体系中,已经安装了mysql,即应用sudo apt-get install mysql-server mysql-client 但是用C编译mysql数据库时,报错fatal erro ...

  10. Python基础之文件

    输出一行一行的,效率更高 一个任务: 主函数: