第一步:在pom.xml中导入注解的依赖 junit
第二步:配置ApplicationContext.xml环境
第三步:在ApplicationContext.xml文件中导入Spring容器的注解约束和支持
第四步:编写两个动物类和People类
第五步:在ApplicationContext.xml文件中配置类对象并在People类中为Cat和Dog属性添加注解
第六步:测试
目录
第二步:配置ApplicationContext.xml环境
第三步:在ApplicationContext.xml文件中导入Spring容器的注解约束和支持
第五步:在ApplicationContext.xml文件中配置类对象
一、在pom.xml中导入注解的依赖 junit
(由于idea的版本不同junit的版本依赖也不同,根据自己的需求去导入相应的依赖)
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
第二步:配置ApplicationContext.xml环境
<?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>
第三步:在ApplicationContext.xml文件中导入Spring容器的注解约束和支持
<?xml version="1.0" encoding="UTF-8"?>
<!--
注解约束
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
注解支持
<context:annotation-config/>
-->
<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/>
</beans>
第四步:编写两个动物类和People类
Cat类
public class Cat {
public void shout(){
System.out.println("miao~~~");
}
}
Dog类
public class Dog {
public void shout(){
System.out.println("wang~~~");
}
}
People类
public class People {
private Dog dog;
private Cat cat;
private String name;
private int age;
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
public Cat getCat() {
return cat;
}
public void setCat(Cat cat) {
this.cat = cat;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "People{" +
"dog=" + dog +
", cat=" + cat +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
第五步:在ApplicationContext.xml文件中配置类对象并在People类中为Cat和Dog属性添加注解
配置类对象:(class中的内容是类的路径)
<bean id="dog" class="com.wei.pojo.Dog"/>
<bean id="cat" class="com.wei.pojo.Cat"/>
<bean id="people" class="com.wei.pojo.People"/>
People类中为Cat属性和Dog属性添加 @Autowired 注解 :
@Autowired
private Dog dog;
@Autowired
private Cat cat;
<使用了@Autowired注解后我们在People类中就不用了在写Set方法了,前提是自动配置的属性必须在IOC中,且符合名字byName!>
(byName的用法:自动配置)
<!--
代替前
<bean id="people" class="com.wei.pojo.People">
<property name="name" value="小明"/>
<property name="dog" ref="dog"/>
<property name="cat" ref="cat"/>
</bean>
替代后
<bean id="people" class="com.wei.pojo.People" autowire="byName">
<property name="name" value="小明"/>
</bean>
byName:
会自动在容器上下文查找,和自己对象set方法后面的值对应的bean id
例子:
<bean id="dog" class="com.wei.pojo.Dog"/>
<bean id="cat" class="com.wei.pojo.Cat"/>
(与byName用法相似的还有byType,自己去尝试配置同一个对象的不同id,去跑程序你就会得到结果了)
-->
第六步:测试
创建测试类MyText
public class MyText {
@Test
public void Text(){
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
//获取实体类的对象
//方法一:可以采用指定类型这种方式来获取实体类的对象
//People people = context.getBean("people",People.class);
//方法二:采用强制转换的方式来获取实体类的对象
People people = (People) context.getBean("people");
people.getDog().shout();
people.getCat().shout();
}
}
注:以上是个人在学习中的总结,每天都在蒸蒸日上 ,大家一起努力。