首先配置spring的pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springtest</groupId>
<artifactId>springtest</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>springtest Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.1.7.RELEASE</spring.version>
</properties>
<dependencies>
<!-- 添加Spring支持 -->
<!-- 核心包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency> <!-- pring IOC的基础实现,包含访问配置文件、创建和管理bean等 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>springtest</finalName>
</build>
</project>

注入类型是String的写法

1. 新建bean类

package com.test.bean;

public class User {
private String name;
private String sex; public String getName() {
return name;
}
public String getSex() {
return sex;
}
public void setName(String name) {
this.name = name;
}
public void setSex(String sex) {
this.sex = sex;
}
public void sayHello() {
System.out.println("我的名字:"+name+",性别:"+sex);
}
}

2. 配置bean.xml,见id="user"的bean

<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入约束 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
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.xsd"> <!-- 简单属性配置 -->
<bean id="user" class="com.test.bean.User">
<property name="name" value="乔佳飞"></property>
<property name="sex" value="男"></property>
</bean>
<!-- 对象属性配置 -->
<bean id="userservice" class="com.test.bean.UserService">
<property name="user" ref="user"></property>
</bean>
<!-- 复杂类型配置 -->
<bean id="userfz" class="com.test.bean.UserFz">
<!-- 数组配置 -->
<property name="array">
<list>
<value>arrayValue1</value>
<value>arrayValue2</value>
</list>
</property>
<!-- list配置 -->
<property name="set">
<set>
<value>setValue1</value>
<value>setValue2</value>
</set>
</property>
<!-- list配置 -->
<property name="list">
<list>
<value>listValue1</value>
<value>listValue2</value>
</list>
</property>
<!-- MAP配置 -->
<property name="map">
<map>
<entry key="mapkey1" value="mapvalue1"></entry>
<entry key="mapkey2" value="mapvalue2"></entry>
</map>
</property>
<!-- MAP配置 -->
<property name="proper">
<props>
<prop key="name">qiaojiafei</prop>
<prop key="sex">nan</prop>
</props>
</property>
</bean>
</beans>

3.测试类

    @Test
public void bean1Test() {
ApplicationContext ac = new ClassPathXmlApplicationContext("bean1.xml");
User user = (User) ac.getBean("user");
user.sayHello();
}

输出:

我的名字:乔佳飞,性别:男

注入类型是引用对象的写法

1.新建类UserService

package com.test.bean;

public class UserService {

    private User user;

    public void setUser(User user) {
this.user = user;
}
public void sayHello() {
System.out.println("UserService-----------");
System.out.println("UserService:"+user.getName()+user.getSex());
}
}

2. 配置bean.xml,见上述xml的id="userservice"的bean

3.测试类

    @Test
public void bean2Test() {
ApplicationContext ac = new ClassPathXmlApplicationContext("bean1.xml");
UserService us = (UserService) ac.getBean("userservice");
us.sayHello();
}

输出:

UserService-----------
UserService:乔佳飞男

注入类型是复杂类型的写法

1.新建类UserFz

package com.test.bean;

import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set; public class UserFz {
private Set set;
private List list;
private Map<String,String> map;
private String array[];
private Properties proper; public Set getSet() {
return set;
}
public void setSet(Set set) {
this.set = set;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public String[] getArray() {
return array;
}
public void setArray(String[] array) {
this.array = array;
}
public Properties getProper() {
return proper;
}
public void setProper(Properties proper) {
this.proper = proper;
} public void sayHello() {
System.out.println("UserFz----array:"+array+",set:"+set+",list:"+list+",map:"+map
+",proper:"+proper);
} }

2.配置bean.xml,见上述xml的id="userfz"的bean

3.测试类

    @Test
public void bean3Test() {
ApplicationContext ac = new ClassPathXmlApplicationContext("bean1.xml");
UserFz usf = (UserFz) ac.getBean("userfz");
usf.sayHello();
}

输出:

UserFz----array:[Ljava.lang.String;@670b40af,set:[setValue1, setValue2],list:[listValue1, listValue2],map:{mapkey1=mapvalue1, mapkey2=mapvalue2},proper:{name=qiaojiafei, sex=nan}

spring使用set方法注入的常见类型写法的更多相关文章

  1. [sping]xml配置文件中factory-bean与factory-method(spring使用工厂方法注入bean)

    public class CarFactory { //非静态方法 public Car createCar(){ Car car = new Car(); car.setBrand("BM ...

  2. Spring方法注入的使用与实现原理

    一.前言   这几天为了更详细地了解Spring,我开始阅读Spring的官方文档.说实话,之前很少阅读官方文档,就算是读,也是读别人翻译好的.但是最近由于准备春招,需要了解很多知识点的细节,网上几乎 ...

  3. SpringBoot 构造器注入、Setter方法注入和Field注入对比

    0. 引入 今天在看项目代码的时候发现在依赖注入的时候使用了构造器注入,之前使用过 Field 注入和 Setter 方法注入,对构造器注入不是很了解.经过查阅资料看到,Spring 推荐使用构造器注 ...

  4. spring通过注解依赖注入和获取xml配置混合的方式

    spring的xml配置文件中某个<bean></bean>中的property的用法是什么样的? /spring-beans/src/test/java/org/spring ...

  5. spring的ioc依赖注入的三种方法(xml方式)

    常见的依赖注入方法有三种:构造函数注入.set方法注入.使用P名称空间注入数据.另外说明下注入集合属性 先来说下最常用的那个注入方法吧. 一.set方法注入 顾名思义,就是在类中提供需要注入成员的 s ...

  6. Spring应用教程-2 方法注入

    作者:禅楼望月(http://www.cnblogs.com/yaoyinglong) 我们通常使用lookup方法注入,它可使Spring替换一个Bean的抽象或具体方法,返回查找容器中,其他Bea ...

  7. spring中Bean的注入类型

    1.属性注入    即通过setXxx()方法注入Bean的属性值或依赖对象,由于属性注入方式具有可选择性和灵活性高的优点,因此属性注入是实际应用中最常采用的注入方式.    属性注入要求Bean提供 ...

  8. Spring揭秘 读书笔记 四----方法注入

    我们知道,拥有prototype类型scope的bean,在请求方每次向容器请求该类型对象的时候,容器都会返回一个全新的该对象实例. 我们看下面的例子: public class MockNewsPe ...

  9. spring依赖注入之构造函数注入,set方法注入

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

随机推荐

  1. 【原创】多字节版本下MFC控件处理字符集的BUG

    工程项目属性: 字符集:多字节 stdafx.h文件中添加: #pragma comment(linker,"/manifestdependency:\"type='win32' ...

  2. JSP的域对象的作用范围

    <%-- Created by IntelliJ IDEA. User: tT丶 Date: 2017-12-12 Time: 14:53 To change this template use ...

  3. P1018 乘积最大(高精度加/乘)

    P1018 乘积最大 一道dp题目.比较好像的dp题目. 然而他需要高精度计算. 所以,他从我开始学oi,到现在.一直是60分的状态. 今天正打算复习模板.也就有借口解决了这道题目. #include ...

  4. hdu 1021 Fibonacci Again(变形的斐波那契)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1021 Fibonacci Again Time Limit: 2000/1000 MS (Java/Ot ...

  5. 单独调用kindeditor的多图上传组件实现多图上传

    本例是单独调用kindeditor多图上传的组件来进行多图上传,兼容性你懂得! 官方示例地址:http://kindeditor.net/ke4/examples/multi-image-dialog ...

  6. 绘图驱动-OSD原理2

    转载自:http://blog.pfan.cn/programming/21209.html 现在已经可以通过修改存储单元内容来改变OSD的像素,但还有个关键的问题是如何根据需要来进行操作,即如何将某 ...

  7. oracle 导入数据报600错误

    之前导入一个大容量dmp数据文件,报一个600错误,咨询网上的解决方法,按上面的处理一圈也没有整好,最后咨询组里一个大神,出现此错误 思路是,单个数据文件大小最大为32G,分析数据库后解决如下: 错误 ...

  8. 时间比较方法DateTime.Compare

    格式:DateTime.Compare(datetime1, datetime2) 参数为时间格式,为第一个参数比较第二个参数,返回小于0的值,等于0或大于0的值. 实例: string st1 = ...

  9. 自动曝光修复算法 附完整C代码

    众所周知, 图像方面的3A算法有: AF自动对焦(Automatic Focus)自动对焦即调节摄像头焦距自动得到清晰的图像的过程 AE自动曝光(Automatic Exposure)自动曝光的是为了 ...

  10. SQL语句中生成UUID方法

    SQL语句中生成UUID方法为UUID() 生成带横线UUID: select UUID()                         形如:abaffaca-fd55-11e5-b3d0-d2 ...