Spring 参数注入方法
2017-07-02 19:40
363 查看
1 使用有参构造注入属性
public class User {
private String userName;
public void setUserName(String userName) {
this.userName = userName;
}
User()
{
}
public void sop()
{
System.out.println(userName);
}
public void add()
{
System.out.println("add.............");
}
public static void main(String[] args)
{
User user = new User();
user.add();
}
}
// 配置文件,其中name属性值是User类中的属性字段名称
<bean id = "bean4" class="com.grl.ioc.User">
<constructor-arg name = "userName" value="小胖子"></constructor-arg>
</bean>
// 测试代码:
public void Text()
{
//加载核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//得到配置创建对象
UserService user = (UserService)context.getBean("bean4");
user.sop();
}
2 使用set方法
public class User {
private String userName;
public void setUserName(String userName) {
this.userName = userName;
}
User()
{
}
public void sop()
{
System.out.println(userName);
}
}
// 配置文件,其中name属性值是User
<bean id = "bean5" class = "com.grl.ioc.User">
<property name="userName" value = "小胖子"></property>
</bean>
// 测试代码
public void Text()
{
//加载核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//得到配置创建对象
UserService user = (UserService)context.getBean("bean5");
user.sop();
}
3 注入复杂类型,例如参数是对象
public class UserService {
private User user;
public void setUser(User user) {
this.user = user;
}
public void sop()
{
System.out.println("hahah 终于成功了!");
}
}
//配置文件
<bean id="user" class="com.grl.ioc.User"></bean>
<bean id = "UserService" class = "com.grl.arg.UserService">
<property name="user" ref = "user"></property>
</bean>
// 测试代码
public class canshuTest {
@Test
public void Text()
{
//加载核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//得到配置创建对象
UserService user = (UserService)context.getBean("UserService");
user.sop();
}
}
4 复杂类型的注入
public class Person {
private String[] arr;
private List<String> list;
private Map<String,String> map;
private Properties properties;
public void setArr(String[] arr) {
this.arr = arr;
}
public void setList(List<String> list) {
this.list = list;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public void sop()
{
System.out.println(arr);
System.out.println(list);
System.out.println(map);
System.out.println(properties);
}
}
// 配置文件
<bean id = "person" class = "com.grl.arg.Person">
<property name="arr">
<list>
<value>小马</value>
<value>小王</value>
<value>小金</value>
</list>
</property>
<property name="list">
<list>
<value>好吗</value>
<value>好的</value>
<value>阿弥陀佛</value>
</list>
</property>
<property name="map">
<map>
<entry key="aa" value="lucy"></entry>
<entry key="bb" value="tom"></entry>
<entry key="cc" value="lili"></entry>
</map>
</property>
<property name="properties">
<props>
<prop key="Drivers">com.mysql.jdbc.Driver</prop>
<prop key="User">root</prop>
<prop key="Pwd">123456</prop>
</props>
</property>
</bean>
// 测试代码
@Test
public void Text()
{
//加载核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//得到配置创建对象
Person p = (Person)context.getBean("person");
p.sop();
}
public class User {
private String userName;
public void setUserName(String userName) {
this.userName = userName;
}
User()
{
}
public void sop()
{
System.out.println(userName);
}
public void add()
{
System.out.println("add.............");
}
public static void main(String[] args)
{
User user = new User();
user.add();
}
}
// 配置文件,其中name属性值是User类中的属性字段名称
<bean id = "bean4" class="com.grl.ioc.User">
<constructor-arg name = "userName" value="小胖子"></constructor-arg>
</bean>
// 测试代码:
public void Text()
{
//加载核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//得到配置创建对象
UserService user = (UserService)context.getBean("bean4");
user.sop();
}
2 使用set方法
public class User {
private String userName;
public void setUserName(String userName) {
this.userName = userName;
}
User()
{
}
public void sop()
{
System.out.println(userName);
}
}
// 配置文件,其中name属性值是User
<bean id = "bean5" class = "com.grl.ioc.User">
<property name="userName" value = "小胖子"></property>
</bean>
// 测试代码
public void Text()
{
//加载核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//得到配置创建对象
UserService user = (UserService)context.getBean("bean5");
user.sop();
}
3 注入复杂类型,例如参数是对象
public class UserService {
private User user;
public void setUser(User user) {
this.user = user;
}
public void sop()
{
System.out.println("hahah 终于成功了!");
}
}
//配置文件
<bean id="user" class="com.grl.ioc.User"></bean>
<bean id = "UserService" class = "com.grl.arg.UserService">
<property name="user" ref = "user"></property>
</bean>
// 测试代码
public class canshuTest {
@Test
public void Text()
{
//加载核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//得到配置创建对象
UserService user = (UserService)context.getBean("UserService");
user.sop();
}
}
4 复杂类型的注入
public class Person {
private String[] arr;
private List<String> list;
private Map<String,String> map;
private Properties properties;
public void setArr(String[] arr) {
this.arr = arr;
}
public void setList(List<String> list) {
this.list = list;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public void sop()
{
System.out.println(arr);
System.out.println(list);
System.out.println(map);
System.out.println(properties);
}
}
// 配置文件
<bean id = "person" class = "com.grl.arg.Person">
<property name="arr">
<list>
<value>小马</value>
<value>小王</value>
<value>小金</value>
</list>
</property>
<property name="list">
<list>
<value>好吗</value>
<value>好的</value>
<value>阿弥陀佛</value>
</list>
</property>
<property name="map">
<map>
<entry key="aa" value="lucy"></entry>
<entry key="bb" value="tom"></entry>
<entry key="cc" value="lili"></entry>
</map>
</property>
<property name="properties">
<props>
<prop key="Drivers">com.mysql.jdbc.Driver</prop>
<prop key="User">root</prop>
<prop key="Pwd">123456</prop>
</props>
</property>
</bean>
// 测试代码
@Test
public void Text()
{
//加载核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//得到配置创建对象
Person p = (Person)context.getBean("person");
p.sop();
}
相关文章推荐
- Spring属性注入、构造方法注入、工厂注入以及注入参数(转)
- Spring参数注入的几种方法
- Spring内核研究-Lookup方法注入
- 使用Spring方法注入协调不同步的bean
- 简单高效防注入攻击的动态多参数、动态SQL语句拼接方法,提高网站的安全性
- Spring.Net对方法的注入(学习笔记三)
- 简单高效防注入攻击的动态多参数、动态SQL语句拼接方法,提高网站的安全性
- 快速上手Spring--9. Lookup方法注入
- 简单高效防注入攻击的动态多参数、动态SQL语句拼接方法,提高网站的安全性
- strut2-spring整合中,拦截器interceptor注入服务或dao的方法
- 简单高效防注入攻击的动态多参数、动态SQL语句拼接方法,提高网站的安全性
- 使用Spring方法注入协调不同步的bean
- spring声明式事务配置方法(四):BeanNameAutoProxyCreator注入Bean
- Spring代理处理参数和方法
- Spring为属性注入某个类的常量或方法的返回值
- Spring内核研究-set方法注入和构造函数注入
- spring注入class类型参数
- Spring2.5中使用方法注入(method inject)之基本方法替代(basis method replacement)
- 简单高效防注入攻击的动态多参数、动态SQL语句拼接方法,提高网站的安全性
- Spring中单例bean访问非单例bean的第一种方式:方法注入(转http://blog.csdn.net/ayueiloveyou/archive/2008/08/03/2760473.aspx)