目前讲到的是Spring中IOC部分,狂神讲课视频在B站 https://www.bilibili.com/video/BV1WE411d7Dv?p=13特别受欢迎。
一、准备pojo
package com.pojo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import javax.annotation.Resource;
public class People {
@Autowired
private Dog dog;
@Autowired
private Cat cat;
private String name;
private String id;
}
public class Dog {
public Dog() {
}
public void shout(){
System.out.println("wangwang~");
}
}
public class Cat {
public Cat() {
}
public void shout(){
System.out.println("miaomiao~");
}
}
二、mapping.xml
这里是bean的配置,喂给spring的ioc容器一个metadata文件 这部分学习的是自动注解,主要涉及到spring中的两个注解
@Autowire(required=true) 设置true可以指定该属性为空 @Qualifier(value="")
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
<bean id="cat111" class="com.pojo.Cat"/>
<bean id="dog111" class="com.pojo.Dog"/>
<bean id="people" class="com.pojo.People"/>
</beans>
三、测试文件
public class Main {
@Test
public void test(){
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"annotation.xml");
People people = ctx.getBean("people", People.class);
people.getDog().shout();
people.getCat().shout();
System.out.println(people);
}
}
四、总结
狂神这部分已经讲到注解的是使用, xml配置bean, spring中如何用ApplicationContext这个接口获取上下文,然后用ctx获取metadata中配置好的bean。很大程度减轻程序去创建对象,让创建对象的权利交给配置文件中,提高灵活性。 摘录几个官网中的片片,加深自己理解 Spring 设计哲学 IOC与DI
metadata配置的几种形式 1.xml 2.注解 3.java 配置 自动装配
|