Spring IOC 注解方式使用
上篇通过xml方式使用IOC https://www.cnblogs.com/wangid3/p/14171898.html
快速使用:
1. 在spring4之后,想要使用注解形式,必须得要引入aop的包

2. 配置文件中加入一行Context
<?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"> </beans>
3. 配置组件扫描:哪个包下的类型使用组合扫描
<!--指定注解扫描包--> <context:component-scan base-package="com.wangid3"/>
4. 在类上使用注释(上一条包里面类,相当于在apicationContext.xml中写的Bean配置)
Qustion:user 是 name 还是 id? 后面会有体现


5. 使用注释注入属性
1)可以直接在直接名上添加@value("值")
@Component("dog")
public class Dog {
@Value("wc")
public String name;
}
2)可以在set方法上添加@value("值");
IOC注解详解:
1. @Component
修改一个类,将这个类交给Spring管理 相当于在配置文件当中配置<bean id="" class="">
@Component三个衍生注解
为了更好的进行分层,Spring可以使用其它三个注解,功能类似
目前使用哪一个功能都一样, 后期可能会添加一些属于各自的属性
@Controller web层
@Service service层
@Repository dao层
2.属性注入:不用被扫描
@Value 设置普通属性值
@Value("wangid3")
public String name;
@Autowired 设置对象类型的属性值
直接使用这种方式,是按照类型完全属性注入
不需要在注解上使用id名称
比如有Spring管理的Dog类
@Component("dog")
public class Dog {
@Value("旺财")
public String name;
}
有User类,属性中有对Dog的引用,注入的时候没有使用到 id="dog",是按照对象类型注入的
public class User { @Autowired private Dog dog; }
就想要高贵的id实现注入,有两种方式:
1)@Autowired+@Qualifier
class User{ @Autowired @Qualifier("dog") public Dog dog; }
2) 单独使用@Resource
class User{ @Resource public Dog dog; }
XML与注解比较
XML可以适用任何场景 ,结构清晰,维护方便
注解不是自己提供的类使用不了,开发简单方便
可以把XML与注解整合开发
XML管理Bean
注解完成属性注入
浙公网安备 33010602011771号