在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. SUSE Linux Enterprise Server设置IP地址、网关、DNS(转载)

      说明: ip:192.168.21.172 子网掩码:255.255.255.0 网关:192.168.21.2 dns:8.8.8.8 8.8.4.4 1.设置ip地址vi /etc/sysco ...

  2. Jmeter-线程组执行顺序控制

    线程组按顺序来执行,大概思路, 1.需要控制线程组内的操作在满足某一条件才执行,那么就需要使用if或者while: 2.要使用if或者while都需要一个变量,而这个变量要在两个或多个线程组内使用,那 ...

  3. 《DSP using MATLAB》Problem 2.15

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  4. ambassador 学习八 流量拷贝说明

    这个功能nginx 的mirror 插件也支持,基本原理就是数据发送后端,但是不进行响应 参考图 实现方式 原始请求 getambassador.io/config: | --- apiVersion ...

  5. Eclipse设置Courier New字体

    使用Eclipse我们会发现在字体设置里找不到钟爱的Courier New字体.其实这个字体不是没有,只是没有显示而已,它其实隐藏起来了,只需几步便可让其现原形—— 1.找到Eclipse设置字体的地 ...

  6. Chrome Developer Tools 中的 Preview 不显示 HTML 的问题

    Chrome Developer Tools 中的 Preview 不显示 HTML 的问题 最近升级到 Chrome V64,发现 Chrome Developer Tools 中的 Preview ...

  7. ios开发之-windows下面虚拟机运行osx,以及xcode

    下载vmware osx镜像 https://kickass.to/os-x-mavericks-10-9-retail-vmware-image-t7981468.html (还有个链接下载不了ht ...

  8. Ionic 项目创建

    1. Ionic介绍 Ionci 是一个强大的HTML5 应用程序框架. 可以帮助您使用Web技术,如HTML, CSS和Javascript构建原生体验的移动应用程序. Ionic主要关注外观和体验 ...

  9. SQL2008如何清空压缩数据库日志

    SQL2008如何清空压缩数据库日志 编写人:左丘文 2015-4-10 近期在给一系统初始化资料时,不断的导入导出,因此一不小心,就将数据的SQL(sql2008R2)的是日志档弄得比数据库还大,给 ...

  10. WinForm中Application.Idle事件用法

    Application.Idle 事件 描述:当应用程序完成处理并即将进入空闲状态时发生.如果您有必须执行的任务在线程变为空闲之前,请将它们附加到此事件. public partial class F ...