首先配置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. Mac常备必用的软件-mac软件推荐

    目录 终端工具 iTerm2,做开发的都用它代替系统自带的“终端”,免费软件,官网直接下载即可. 文件比较工具 meld,开源免费的文件/文本比较工具. 安装方法:brew cask install ...

  2. 强大的Windows 10数字权利获取工具HWIDGEN

    前言: 每当windows 10 系统过期就是头疼的key激活,更奇怪的是每次激活的方式不同,上次有效下次就不知道有没有效了,今天发现一种更改数字权利的工具脚本,不要太牛逼!!! 安装之前的准备工作: ...

  3. PAT——1013. 数素数

    令Pi表示第i个素数.现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数. 输入格式: 输入在一行中给出M和N,其间以空格分隔. 输出格式: 输出从PM到PN的所有素数 ...

  4. sharePoint中简单的父页面跳转子页面代码!

    1,SharePoint中挺简单的一个父页面跳转到子页面的Js代码!常常用到,每次都到以前的项目中去找代码,挺麻烦! (1)父页面代码. function imgAddParentclick() { ...

  5. 点击HTML页面问号出现提示框

    本demo的功能:点击页面按钮在其边缘出现提示信息,点击页面任何一处则消失. 如下图: 1.所需插件: jquery插件: layer插件: 2.HTML内容: ==注意==: class=" ...

  6. OpenGL 3 and OpenGL 4 with GLSL

    Here are some OpenGL samples with advance features. NeHe OpenGL tutorial focus on the OpenGL fixed p ...

  7. iOS多语言设置

    最近公司做的项目需要向国外推广,因此app需要添加相应的语言设置,为此整理记录下多语言设置的过程.如有不对的地方,欢迎各位大神指正.下面就详细介绍下设置的过程: 1.基本设置 第一步:首先在 项目工程 ...

  8. iOS开发神器InjectionIII

    最近发现了一款适用于iOS开发的神器,希望可以和大家一起分享,同时自己也将有用的东西记录下来,没错就是InjectionIII! 先看一下使用流程: 1.在MAC的App Store里面搜索下载这个工 ...

  9. MySQL(mariadb)多实例应用与多实例主从复制

    MySQL多实例 mysql多实例,简单理解就是在一台服务器上,mysql服务开启多个不同的端口(如3306.3307,3308),运行多个服务进程.这些 mysql 服务进程通过不同的 socket ...

  10. mariadb或者mysql忘记root密码

    windows======================net stop mysql #先停止mysql或者在服务管理里面停止 直接打开Windows的命令行(CMD)窗口(以管理员身份运行),输入 ...