Spring的IOC和直接new的区别

1,Spring默认创建的单例Bean,集中管理Bean的创建和生命周期,其中也是用到池化技术(容器集合),当使用Bean时会从池中获取,当使用完后重新放入池中,不会立马销毁,这样就减少了Bean创建的时间和节省CPU资源。
2,Spring这种控制反转降低了代码的耦合度,当使用到了具体的Bean时才会进行组合,同时也解决了复杂的循环依赖问题,比如A依赖B,B依赖C,C依赖D,D依赖A这种多个类相互依赖,创建起来就麻烦了,当存在循环依赖时处理更麻烦。
3,java是面向接口编程,当我们A类里需要调用B类方法时,一般都是调对应的接口,对应的接口可能会有多个实现类,各自实现都差不多,只是细节或者效率会有差别,当使用Spring依赖注入时就是你配置的那个,也就是注入的那个。比较灵活。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性之一,它的作用是将对象的创建、依赖关系的管理交给Spring容器来完成,从而实现了对象之间的解耦。具体来说,Spring IOC的作用包括以下几个方面: 1. 对象的创建:Spring IOC容器负责创建应用中需要的对象,开发者只需要在配置文件中声明需要创建的对象即可。 2. 对象的依赖关系管理:Spring IOC容器负责管理对象之间的依赖关系,开发者只需要在配置文件中声明对象之间的依赖关系即可。 3. 对象的生命周期管理:Spring IOC容器负责管理对象的生命周期,包括对象的创建、初始化、使用和销毁等过程。 4. 配置的灵活性:Spring IOC容器采用外部配置的方式,使得开发者可以在不修改代码的情况下修改应用的配置信息,从而提高了应用的灵活性和可维护性。 以下是一个简单的Spring IOC示例: ```java public interface MessageService { String getMessage(); } public class MessageServiceImpl implements MessageService { public String getMessage() { return "Hello, World!"; } } public class Application { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); MessageService service = context.getBean(MessageService.class); System.out.println(service.getMessage()); } } <!-- applicationContext.xml --> <beans> <bean id="messageService" class="com.example.MessageServiceImpl"/> </beans> ``` 在上面的示例中,我们定义了一个接口MessageService和它的实现类MessageServiceImpl,然后在Spring的配置文件applicationContext.xml中声明了一个id为messageService的bean,它的class属性指定为MessageServiceImpl。在应用启动时,我们通过ApplicationContext接口获取Spring IOC容器的实例,并调用它的getBean方法获取id为messageService的bean,最后调用getMessage方法输出“Hello, World!”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值