1、什么是ioc?
Spring-IOC 控制反转与依赖注入 : 原来应用程序创建对象的过程转交给外部容器(Spring IOC)负责创建与维护的过程
2、注解方式注入bean
1.加入 spring-aop jar 包 spring-aop-4.3.2.RELEASE.jar
2.Xml 配置: 加入 context 命名空间 和 xsd 地址
3. 添加<context:annotation-config/>
配置
<?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/>
</beans>
对于 bean 的注入常用注解类型
@Autowired 属性字段或 set 方法上
@Resource 属性字段上或 set 方法上
区别:
1、@Autowired 默认按 bean 的类型匹配 可以修改 按名称匹配 和@Qualifier 配合使用
2、@Resource 默认按名称进行装配,名称可以通过 name 属性进行指定,如果没有指定 name 属性,当注解写在字段上时,默认取字段名进行匹配注入,如果注解写在 setter 方法上默认取属性名进行装配。当找不到与名称匹配的 bean时才按照类型进行装配。但是需要注意的是,如果 name 属性一旦指定,就只会按照名称进行装配。
推荐使用@Resource 注解是属于 J2EE 的,减少了与 spring 的耦合
3、Spring IoC容器自动扫描管理bean
实际的开发中,bean 的数量非常多,采用手动配置 bean 的方式已无法满足生产需要,spring 这时候同样提供了扫描的方式,对扫描到的 bean 对象统一进行管理,简化开发配置,提高开发效率。
<context:component-scan base-package="com.shsxt"/>
开发中建议(开发中的一种约定)
Dao层:@Repository
Service层: @Service
Controller层:@Controller
组件:@Conponent
被实例化的bean没有特别声明名称的,默认Bean的id为类名首字母小写