Spring学习笔记
/**
* 地址实体类
*/
public class Address {
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Address{" +
"address='" + address + '\'' +
'}';
}
}
/**
* 学生实体类
*/
public class Student {
private String name;
private Address address;
private String[] books;
private List hobbys;
private Map cards;
private Set 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 getHobbys() {
return hobbys;
}
public void setHobbys(List hobbys) {
this.hobbys = hobbys;
}
public Map getCards() {
return cards;
}
public void setCards(Map cards) {
this.cards = cards;
}
public Set getGames() {
return games;
}
public void setGames(Set 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.toString() +
", books=" + Arrays.toString(books) +
", hobbys=" + hobbys +
", cards=" + cards +
", games=" + games +
", wife='" + wife + '\'' +
", info=" + info +
'}';
}
}
红楼
西游
水浒
三国
吃饭
唱歌
lol
coc
bob
1512021452
男
lucky
123456
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Di.xml");
Student student = (Student) context.getBean("student");
System.out.printf(student.toString());
}
Student{name='zhangsan', address=Address{address='beijing'}, books=[红楼, 西游, 水浒, 三国], hobbys=[吃饭, 唱歌], cards={身份证=125412541254125412, 银行卡=6521458754265456}, games=[lol, coc, bob], wife='null', info={学号=1512021452, 性别=男, 姓名=lucky, 密码=123456}}
public class Cat {
public void shout(){
System.out.println("miao--");
}
}
public class Dog {
public void shout(){
System.out.println("wang--");
}
}
public class People {
private Cat cat;
private Dog dog;
private String name;
public Cat getCat() {
return cat;
}
public void setCat(Cat cat) {
this.cat = cat;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "People{" +
"cat=" + cat +
", dog=" + dog +
", name='" + name + '\'' +
'}';
}
}
-
小结:
byName自动装配需要保证所有bean的id唯一,并且bean需要跟自动注入的set方法的值一致
byType自动装配需要保证所有bean的class唯一,并且bean需要跟自动注入的属性的类型一致
要使用注解须知:
1.导入约束
2.配置注解的支持
** **
@Component
public class User {
public String name;
// 相当于
@Value("kk")
public void setName(String name) {
this.name = name;
}
}
@Component有几个衍生注解 我们在web开发中会按照mvc分层
- dao [@Repository]
- service层 [@service]
- controller [@Controller]
- 这四个注解功能都是一样的,都是代表将某个类注册到spring容器中装配Bean
@Component
@Scope("singleton")
public class User {
public String name;
// 相当于
@Value("zhangsan")
public void setName(String name) {
this.name = name;
}
}