您的位置:首页 > 编程语言 > Java开发

spring使用set方法注入的常见类型写法

2018-01-04 23:35 561 查看

首先配置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}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: