Spring中的IOC容器

Spring

Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的容器框架 。Spring的两大核心是IOC容器和AOP模块。Spring的Bean工厂通过IOC思想来降低程序代码之间的耦合,并提供了面向切面编程(AOP)来实现业务之间的增强。 通过IOC容器创建对象和实现对对象的管理;通过AOP的动态代理来实现业务方法的增强。

什么是IOC

IOC(控制反转),它是把由程序代码直接操控的对象的调用权交给spring容器,通过容器来实现对象的创建和管理。通常,我们在A类中使用B类的方法,需要new一个B对象,这个过程是由我们自己来控制,IOC思想就是:把new对象的控制权交给Spring容器,不需要我们程序员自己new对象,就实现了控制的反转。

IOC是一种设计模式,实现该思想的方式是通过DI(依赖注入);就是IOC容器会把当前对象所需要的外部资源动态的注入到组件(Controller,Service等)之中;什么是注入,就是给属性赋值,Spring依赖的注入常用方式为:基于注解方式注入。

属性赋值

1.java类中必须有setter方法

2.java类中必须有无参构造器(默认存在)

3.依赖其他bean的类中,必须提供一个他依赖的bean的get×××()方法

Spring在bean与bean之间建立依赖关系的行为成为装配。Spring的容器虽然很强大,但本身是一个空壳,需要主动将bean放进去,并告诉它bean与bean之间的依赖关系,才能按照我们的要求完成装配。

基于注解方式实现依赖注入

1.要在applicationcontext.xml中引入context依赖

2.开启组件扫描:spring默认不使用注解装配bean,因此需要在applicationcontext.xml中配置,通过 context:component-scan元素开启Spring beans的自动扫描功能,就是在类上加@component注解,就把该类装配到容器中。

3.使用注解定义bean

4.依赖注入

2..开启组件扫描

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:context=“http://www.springframework.org/schema/context”
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
     ">
    <!--导入约束-->
    <!--配置注解的支持-->
    <context:annotation-config />
    <!--开启组件扫码功能-->
     <context:component-scan base-package="ghm.service"></context:component-scan>
</beans>

3,使用注解定义bean

Spring常用注解:

@Controller 通常用于控制层 用于将控制层的类标识为Spring中的bean
@Service    通常用于业务层 用于将业务层的类标识为Spring中的bean
@Component  可以用于任何层 例如sercice层,dao层
@Repository 通常用于数据访问层 用于dao层的类标识为Spring中的bean,功能和Component一样

4.基于注解方式实现依赖注入

@Autowired 
@Resource
两者都是自动装配,区别在于:
@Autowired:自动装配先通过类型(byType)进行装配,再通过名称(byName)进行装配。必须要求这个对象在spring容器中存在,如果Autowired不能唯一自动装配上属性,需要结合@Qualifier(value="xxx"")来配合使用
@Resource: 自动装配先通过名称(ByName)进行装配,如果找不到再通过类型(byType)进行装配

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值