IoC(Inversion of Control,控制反转)
在Java中,IoC(Inversion of Control,控制反转)是一种设计原则,用于将组件间的依赖关系从组件内部转移到组件之外。这有助于降低组件之间的耦合度,提高系统的可维护性和可扩展性。就是指主动new产生的对象转换为由外部提供对象,此过程对象的控制权由程序转移到外部,此思想称为控制反转。
IoC的核心思想是将组件的创建、配置和组装过程交给外部容器或框架来完成,而不是在组件内部进行。这样,组件只需关注自己的核心职责,而不用担心依赖的创建和管理。
DI(依赖注入,Dependency Injection)
在容器建立中bean与bean之间的依赖关系的整个过程,称为依赖注入
在Spring框架中,Bean是一个术语,用来表示在应用程序中管理的一个对象。Spring容器负责创建、配置和管理这些对象,以及它们之间的依赖关系。这些对象被称为Spring Beans,它们是应用程序的核心组件,通常用于实现业务逻辑、数据访问等功能。
Spring Beans的主要特点:
管理:Spring容器负责管理Bean的生命周期,包括创建、初始化、销毁等过程。这样,开发人员可以专注于编写业务逻辑,而无需关注对象的创建和管理细节。
依赖注入:Spring容器通过依赖注入(Dependency Injection,DI)为Bean提供所需的依赖。这使得Bean之间的耦合度降低,提高了代码的可维护性和可扩展性。
配置:Bean的配置可以通过XML文件、注解或Java配置类来完成。这使得我们可以在不修改Bean源代码的情况下,调整Bean的配置和依赖关系。
作用域:Spring Beans可以具有不同的作用域(如单例、原型等),这影响了Bean实例在应用程序中的共享方式。
applicationContext.xml
bean的别名
在Spring框架中,Bean的别名(alias)是一个可选的功能,允许您为Bean定义一个或多个替代名称。别名可以用于多种目的,例如解决Bean名称冲突、提供更具描述性的名称等。
在XML配置中为Bean定义别名的方法如下:
<bean id="myBean" class="com.example.MyBeanClass">
<!-- xxxx -->
</bean>
<alias name="myBean" alias="myBeanAlias"/>
在Java配置中为Bean定义别名的方法如下:
@Configuration
public class AppConfig {
@Bean({"myBean", "myBeanAlias"})
public MyBeanClass myBean() {
return new MyBeanClass();
}
}
这玩意好难,学的一脸懵!入门失败!