Java框架spring 学习笔记(六):属性注入

时间:2023-03-08 19:14:16
Java框架spring 学习笔记(六):属性注入

属性注入:创建对象的时候,向类里面的属性设置值。

Java属性注入有三种方法:

  1. 使用set方法注入
  2. 有参数构造注入
  3. 使用接口注入

Java框架spring 学习笔记(六):属性注入

Spring框架里面的属性注入方式

  1. 有参数构造属性注入
  2. set方法属性注入

有参数构造属性注入

编写User.java

 package com.example.spring;

 public class User {
private String name;
private Integer age;
private String country; //基于构造函数的属性注入
public User(String name, Integer age, String country) {
this.name = name;
this.age = age;
this.country = country;
} public String toString() {
return name + " is " + age + " years old, living in " + country;
}
}

编写Beans.xml,使用constructor-arg为属性赋值

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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.example.spring.User" >
<constructor-arg name="name" type="java.lang.String" value="Jacky" />
<constructor-arg name="age" type="java.lang.Integer" value="22"/>
<constructor-arg name="country" type="java.lang.String" value="China"/>

</bean> </beans>

编写Application.java

package com.example.spring;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Application {
public static void main(String[] args) {
//bean配置文件所在位置 D:\\IdeaProjects\\spring\\src\\Beans.xml
//使用AbstractApplicationContext容器
AbstractApplicationContext context = new ClassPathXmlApplicationContext("file:D:\\IdeaProjects\\spring\\src\\Beans.xml");
User user = (User)context.getBean("user");
System.out.println(user);
}
}

运行输出

Jacky is 22 years old, living in China

set方法属性注入

编写User.java

 package com.example.spring;

 public class User {
private String name;
private Integer age;
private String country; //基于set方法的属性注入
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public void setCountry(String country) {
this.country = country;
} public String toString() {
return name + " is " + age + " years old, living in " + country;
}
}

编写Beans.xml,使用property关键字为属性赋值

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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.example.spring.User" >
<property name="name" value="Jacky"></property>
<property name="age" value="22"></property>
<property name="country" value="China"></property>

</bean> </beans>

编写Application.java

 package com.example.spring;

 import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Application {
public static void main(String[] args) {
//bean配置文件所在位置 D:\\IdeaProjects\\spring\\src\\Beans.xml
//使用AbstractApplicationContext容器
AbstractApplicationContext context = new ClassPathXmlApplicationContext("file:D:\\IdeaProjects\\spring\\src\\Beans.xml");
User user = (User)context.getBean("user");
System.out.println(user);
}
}

运行输出

Jacky is 22 years old, living in China