Spring的两大核心:IOC和DI
IOC(Inversion of Control):控制反转
DI(Dependency Injection):将IOC容器中的bean与bean 之间建立依赖关系
当明白这两个核心以后,对Spring 整体框架的认知也就清晰了很多。
IOC:在Spring中将创建对象,管理对象,调用对象的权力交给Spring。 即为控制反转,也就是控制权力的反转。
IOC容器:在一个容器内专门进行创建、配置和管理 bean,也就是它管理着 bean 的生命,控制着 bean 的依赖注入。
DI: 依赖注入,将IOC容器中的bean与bean之间建立关系 。
XML配置文件的方式管理加载SpringIOC:
1. 如何将Bean添加到SpringIOC容器中进行管理?
配置.xml文件(在IOC容器中声明这个bean)
创建一个Spring配置文件,配置对应的类,作为Spring管理的bean。
2. 如何将SpringIOC容器中的Bean调出使用?
加载IOC容器对应的类调用getbean方法
3. 如何明确IOC中Bean与Bean之间的关系?
配置.xml文件,在IOC容器中声明bean的标签中继续指定
4. 如何加载外部的properties文件?
通过xml文件的方式开辟一块新的Context命名空间,加载指定的properties文件,并且使用${}读取属性值。
不继续使用bean标签的原因是:<bean>是加载对象的标签,不能用来处理properties文件
纯注解方式管理加载SpringIOC:
1. 如何将Bean添加到SpringIOC容器中进行管理?
@Component 定义bean ,不同的Bean文件可以使用不同的注解进行进一步的区分
@Controller :用于表现层的bean定义
@Service :用于业务层的bean定义
@Repository: 用于定义数据层bean定义
2. 在IOC容器中如何扫描Bean
直接通过@ComponentScan("包路径")注解进行扫描
3. 如何明确IOC中Bean与Bean之间的关系?
@Autowired:自动装配,将所需要的类直接通过暴力反射的方法实例化
4. 如何加载外部的properties文件?
在启动类中@PropertySource(“classpath:文件路径”),使用到properties文件中的参数的时候使用@Value("${jdbc.username}")