Spring(一)基础概念

容器相关概念

  • 容器的主要作用是创建并管理bean
  • 创建方式:通过反射技术,创建bean实例
  • 底层创建的模式为:工厂模式
  • 容器中的bean实例,默认为单例的方式管理.(配置文件中scope="prototype" 属性,更改创建实例的方式)
  • 创建Application容器有两种方式:1.通过配置文件2.通过注解

加载配置文件创建容器

ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config2.xml");

配置文件:声明组件

<!--关联一个具体的实现类 -->
    <bean id="controllerBean" class="com.apesource.web.controller.OrderController">
        <property name="orderService" ref="orderServiceBean"> </property>
    </bean>

配置文件: 声明注入name为属性,ref为实体类

<bean id="orderServiceBean" class="com.apesource.service.OrderService">
        <property name="accountDAO" ref="accountDAOBean"/>
        <property name="iOrderDao" ref="orderDaoBean"/>
        <property name="IProductDAO" ref="productBean"/>
    </bean>

通过注解的方式创建Application容器(扫描所有的包)

 ApplicationContext applicationContext = new AnnotationConfigApplicationContext("com.apesource");

设计理念

  • IOC(Inverse of Control)控制反转
  • DI(Dependency Injection)依赖注入

IOC与DI是相同设计理念的不同描述:作用是降低类与类之间的耦合.之前的主动创建实例,现在通过容器按照组件之间的依赖关系,完成了组件之间的注入.(控制对象的主体反转了.不再主动控制,通过配置文件或注解,等待容器注入.)

  • 注入的三种方式:1.属性setter注入 2.构造注入 3.接口注入

注解

声明bean的注解

  • @Component:组件
  • @Controller:控制器组件
  • @Service:业务逻辑组件
  • @Repository:数据访问层组件

声明注入的注解

Java标准注解

  • Resource:Javax包提供注解,自动注入,默认按照类型注入,如果多个类型,可以市容Name属性指定类型.

Spring Framework

Autowired:自动装配,按照当前声明接口类型,查找实现当前接口的对象bean,进行注入
Qulifier:按照bean名称配合Autowired使用,按bean名称查找实现当前接口的对象bean

接口的多个实现类:使用Resource注解或Autowired与Qulifier注解配合使用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。