Bean
bean相当于定义一个组件,这个组件是用于具体实现某个功能的。
bean可以理解为类的代理(实际上是通过反射,代理来实现的),这样它就能代表类拥有该拥有的东西了
@Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中;
ioc
ioc控制反转也叫做依赖注入(DI)
把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,可以被重用和扩展
Spring ioc 负责创建对象,管理对象,装配对象,配置对象,并且管理这些对象的整个生命周期
ioc的好处:
1.因为ioc的存在,对象与对象之间的耦合度大大降低,可维护性比较好,便于进行单元测试,以及便于调试程序和诊断故障。
2.对象和对象之间在没有产生关联之前,各个对象的互不相干的,每个开发成员只用完成自身的业务逻辑,开发效率提高
3.容器提供单例模式支持,开发人员不需要自己编写实现代码.
4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
缺点:
ioc容器的生成对象是通过反射方式形成的,运行效率上有一定的损耗