基本使用
【第一步】在applicationContext.xml中开启Spring注解包扫描
<?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/>
<!--扫描包及其子包下的类中注解-->
<context:component-scan base-package="com.pojo"/>
</beans>
【第二步】在类上使用@Component注解定义Bean。
package com.pojo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
//@Component定义bean
//等价于 <bean id="user" class="com.pojo.User"/>
@Component
public class Teacher {
public String name;
// 相当于配置文件中 <property name="name" value="凯多"/>
@Value("凯多")
public void setName(String name) {
this.name = name;
}
}
【第三步】测试
@Test
public void demo4(){
ApplicationContext context = new ClassPathXmlApplicationContext("beans5.xml");
Teacher teacher = context.getBean("teacher", Teacher.class);
System.out.println(teacher.name);
}
作用域
singleton:默认的,Spring会采用单例模式创建这个对象。关闭工厂 ,所有的对象都会销毁。
prototype:多例模式。关闭工厂 ,所有的对象不会销毁。内部的垃圾回收机制会回收
@Controller("user")
@Scope("prototype")
public class User {
@Value("冯宝宝")
public String name;
}