1,当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入
2,所谓依赖注入,是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理
Student
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 girlFriend;private Properties info;public Student() {}public void setName(String name) {this.name = name;}public void setAddress(Address address) {this.address = address;}public void setBooks(String[] books) {this.books = books;}public void setHobbys(List<String> hobbys) {this.hobbys = hobbys;}public void setCard(Map<String, String> card) {this.card = card;}public void setGames(Set<String> games) {this.games = games;}public void setGirlFriend(String girlFriend) {this.girlFriend = girlFriend;}public void setInfo(Properties info) {this.info = info;}@Overridepublic String toString() {return "Student{" +"name='" + name + ''' +", address=" + String() +", books=" + String(books) +", hobbys=" + hobbys +", card=" + card +", games=" + games +", girlFriend='" + girlFriend + ''' +", info=" + info +'}';}
}
Address
public class Address {private String address;public Address() {}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "Address{" +"address='" + address + ''' +'}';}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=""xmlns:xsi=""xsi:schemaLocation="://www.springframework/schema/beans/spring-beans.xsd"><!--Address--><bean id="addr" class="pojo.Address"><property name="address" value="西安"/></bean><!--Student--><bean id="Student" class="pojo.Student"><!--常量注入 普通字段--><property name="name" value="闪电侠"/><!--Bean注入 引用其他bean使用ref--><property name="address" ref="addr"/><!--数组注入--><property name="books"><array><value>西游记</value><value>水浒传</value><value>红楼梦</value><value>三国演义</value></array></property><!--List注入--><property name="hobbys"><list><value>代码</value><value>电影</value><value>音乐</value></list></property><!--Map注入--><property name="card"><map><entry key="IdCard" value="666666888888884444"/><entry key="银行卡" value="111122223333444"/></map></property><!--Set注入--><property name="games"><set><value>王者荣耀</value><value>绝地求生</value></set></property><!--Null空值注入--><property name="girlFriend"><null/></property><!--Properties注入--><property name="info"><props><prop key="学号">2019032324</prop><prop key="性别">男</prop><prop key="姓名">闪电侠</prop></props></property></bean></beans>
import org.junit.Test;
import t.support.ClassPathXmlApplicationContext;public class StudentTest {@Testpublic void Test(){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(l");Student student = (Student) Bean("Student");System.out.String());}
}
本文发布于:2024-01-30 01:17:19,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170654864318201.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |