本文已参与「新人创作礼」活动,一起开启掘金创作之路。
小Tips:快捷键生成getter和setter:Alt+F12
然后 按住Ctrl键,可以进行选择。
本次项目的项目结构:
一.依赖注入环境(三种方式)
1.构造器注入(前面讲过)
2.set方式注入(重点!!!)
。依赖: bean对象的创建依赖于容器!
。注入: bean对象中的所有属性,由容器来注入!
【环境搭建】
1)复杂类型
package com.kuang.pojo;
public class Address {
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
2)真实测试对象
public class Student {
private String name;
private Address address;
private String[] books;
private List<String> hobbys;
private Map<String,String> card;
private Set<String> games;
private String wife;
private Properties info;
【步骤】
1.新建一个子项目模块spring-04-di;
2.在java文件夹下新建一个包:com.kuang.pojo;
3.在刚刚新建的包里,新建一个Student类;
4.然后再建一个新类Address,也就是引用对象;
package com.kuang.pojo;
public class Address {
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Student类代码:
package com.kuang.pojo;
import java.util.*;
public class Student {
private String name;
private Address address;
private String[] books;
private List<String> hobbys;
private Map<String,String> card;
private Set<String> games;
private String wife;
private Properties info;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public String[] getBooks() {
return books;
}
public void setBooks(String[] books) {
this.books = books;
}
public List<String> getHobbys() {
return hobbys;
}
public void setHobbys(List<String> hobbys) {
this.hobbys = hobbys;
}
public Map<String, String> getCard() {
return card;
}
public void setCard(Map<String, String> card) {
this.card = card;
}
public Set<String> getGames() {
return games;
}
public void setGames(Set<String> games) {
this.games = games;
}
public String getWife() {
return wife;
}
public void setWife(String wife) {
this.wife = wife;
}
public Properties getInfo() {
return info;
}
public void setInfo(Properties info) {
this.info = info;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + ''' +
", address=" + address +
", books=" + Arrays.toString(books) +
", hobbys=" + hobbys +
", card=" + card +
", games=" + games +
", wife='" + wife + ''' +
", info=" + info +
'}';
}
}
5.在resources文件夹里新建一个beans.xml文件;
下面这段代码是基本框架,以后直接copy过来即可;
<?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">
</beans>
6.先写一个测试类进行测试一下;
7.在test文件夹里 的java文件夹里新建一个测试类Test;
beans.xml:
<bean id="student" class="com.kuang.pojo.Student">
<!--第一种,普通值注入,利用value-->
<property name="name" value="吴磊"/>
</bean>
MyTest.java:
import com.kuang.pojo.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
Student student = (Student) context.getBean("student");
System.out.println(student.getName());
}
}
输出结果:
3.拓展方式注入