spring框架 构造方法注入
在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框架 构造方法注入的更多相关文章
- spring框架bean注入
今天学习了spring框架,刚刚入门简单的了解了spring并学习了bean的注入IOC:IOC(Inversion of Control,控制反转)不是什么技术,而是一种设计思想.它的目的是指导我们 ...
- 04 Spring框架 依赖注入(一)
整理了一下之前学习spring框架时候的一点笔记.如有错误欢迎指正,不喜勿喷. 上一节我们讲了几个bean的一些属性,用来限制我们实例创建过后的状态. 但是细心的我们会发现其实上面demo创建的实例并 ...
- spring学习笔记二:spring使用构造方法注入(set方式注入)
项目目录树: 1.spring的依赖包配置 * SPRING_HOME/dist/spring.jar * SPRING_HOME/lib/log4j/log4j-1.2.14.jar * SPRIN ...
- Spring通过构造方法注入的四种方式
通过构造方法注入,就相当于给构造方法的参数传值 set注入的缺点是无法清晰表达哪些属性是必须的,哪些是可选 的,构造注入的优势是通过构造强制依赖关系,不可能实例化不 完全的或无法使用的bean. Me ...
- 05 Spring框架 依赖注入(二)
上一节我们讲了三种信息的注入,满足一个类的属性信息的注入,但是如果我们需要向一个实例中注入另一个实例呢?就像我们创建一个学生类,里边有:姓名,性别,年龄,成绩等几个属性(我习惯把类的域叫做属性),但是 ...
- 07 Spring框架 依赖注入(四)基于注解的依赖注入
前面几节我们都在使用xml进行依赖的注入,但是在实际的开发中我们往往偏爱于使用注解进行依赖注入,因为这样更符合我们人的思维,并且更加快捷,本节就来讲述Spring基于注解的依赖注入: 信息注入注解 @ ...
- spring框架——依赖注入
依赖注入:DI 又称控制反转:IoC 项目名字spring_DI 一.implement包中定义了两个接口Food和Person 1.接口Food package org.interfaces; pu ...
- 06 Spring框架 依赖注入(三)多配置文件
在Spring前几节的学习中我们都使用了一个配置文件,就像struts2中可以包含其他的配置文件,我们能不能使用多个配置文件呢(在工程比庞大,配置比较多的时候)? Spring多配置文件分为两种: 平 ...
- spring框架里面的注入?
在Spring框架里面注入可以通过1.setter方法注入:2.构造器注入:3.注入对象 在配置文件中配置如下: 前面两者不能同时注入: 入 如果前两者同时注入将会报错 将注入修改以后,如下图: 修改 ...
随机推荐
- MacBook下java环境的搭建
在Mac下搭建JAVA环境: 1.下载并安装JDK: 下载最新的JDK,傻瓜式安装,一直下一步就OK了. 2.配置环境变量: 在终端中输入 sudo vim ~/.bash_profile ,打开 . ...
- mac终端下修改MySQL的编码格式--找不到my-default.cnf及my.cnf
首先请确认正确安装好MySQL. 1- 先配置环境变量path 1.1 打开终端,输入: cd ~ 会进入~文件夹, 1.2 然后输入:touch .bash_profile 回车执行后, 1.3 再 ...
- streamsets 数据流设计
streamsets 支持branch(分支)&& merge(合并)模式的数据流 branch 数据流 如下图: 我们可以根据数据包含的字段进行拆分,不同的数据流处理自己关注的数据 ...
- nodejs json-t 基本测试
安装npm包 npm i json-templater or yarn add json-templater 基本代码 var render = require('json-templater/str ...
- TCP/IP详解与OSI七层模型
TCP/IP协议 包含了一系列构成互联网基础的网络协议,是Internet的核心协议.基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层.网络层.传输层和应用层.下图表示TCP/IP模型与 ...
- CenOS中的yum配置文件CentOS-Base.repo里面的参数都是何含义? souhu CentOS-Base.repo
souhu yum服务器CentOS-Base.repo 将$releasever替换为操作系统版本号 # CentOS-Base.repo # # The mirror system uses t ...
- 汇编_指令_IRET
IRET(interrupt return)中断返回,中断服务程序的最后一条指令. 汇编指令IRET [指令格式]IRET [指令功能]IRET(interrupt return)中断返回,中 ...
- 设置putty标题栏显示固定信息
设置好后,登录服务器后,发现标题栏又显示root@sit:/opt/ihome,没有显示成我设置的title内容.原因是: 在Terminal->Features中一定要勾选Disable re ...
- Hive新功能 Cube, Rollup介绍
说明:Hive之cube.rollup,还有窗口函数,在传统关系型数据(Oracle.sqlserver)中都是有的,用法都很相似. GROUPING SETS GROUPING SETS作为GROU ...
- 生成式对抗网络(GAN)
生成对抗网络(GAN),是深度学习模型之一,2014年lan Goodfellow的开篇之作Generative Adversarial Network, GAN概述 GAN包括两个模型,一个是生成模 ...