首先配置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. UVa 10820 - Send a Table(欧拉函数)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  2. tp3.2中的 I () 方法

    I('get.id'); // 相当于 $_GET['id']

  3. mybatis的resultMap自定义结果映射规则

    dao接口 User myGetUserById(Integer id); sql xml自定义封装规则 <!--自定义某个javabean的封装规则 type:自定义规则的java类型 id: ...

  4. 给windows添加路由

    route add 10.0.0.0 mask 255.0.0.0 172.16.1.253 -p

  5. Mongoose 对象的特殊性

    一.偶遇难题 在最近使用Mongoose的时候,遇到这样一个问题: 我从DB中查询出来一个对象,比如是Book,这个对象我想在返回时,给他附加一个字段,比如是字段A,正常来说,JS你只需要Book.A ...

  6. Canvas制作的下雨动画

    简介 在codepen上看到一个Canvas做的下雨效果动画,感觉蛮有意思的.就研究了下,这里来分享下,实现技巧.效果可以见下面的链接. 霓虹雨: http://codepen.io/natewile ...

  7. 微信小程序禁止刷新之后苹果端还可以下拉的问题

    一.问题描述 最近在做一个小程序项目,需要禁止下拉刷新,于是在page.json里面添加了这段话 "enablePullDownRefresh":false 全局关闭下拉刷新,这段 ...

  8. OC - KVO实现原理

    1.KVO简介 KVO是Objective-C对观察者设计模式的一种实现,它提供一种机制,指定一个被观察对象(如A类),当对象中的某个属性发生变化的时候,对象就会接收到通知,并作出相应的处理.在MVC ...

  9. Python入门 —— 01简介

    Python 历史 python 的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为 ...

  10. Android中,子线程使用主线程中的组件出现问题的解决方法

    Android中,主线程中的组件,不能被子线程调用,否则就会出现异常. 这里所使用的方法就是利用Handler类中的Callback(),接受线程中的Message类发来的消息,然后把所要在线程中执行 ...