exam2-spring

参考 spring官网 https://spring.io/

Spring 体系结构(了解)

  • Core technologies: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.

  • Testing: mock objects, TestContext framework, Spring MVC Test, WebTestClient.

  • Data Access: transactions, DAO support, JDBC, ORM, Marshalling XML.

  • Spring MVC and Spring WebFlux web frameworks.

  • Integration: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache.

  • Languages: Kotlin, Groovy, dynamic languages.

Spring 的IoC容器(了解)

spring提供了两种容器,分别是BeanFactoryApplicationContext

BeanFactory

BeanFactory接口有多个实现类,最常用的是XMLBeanFactory,根据XML配置文件来装配Bean

ApplicationContext

ApplicationContext 是BeanFactory的子接口,在初始化时会进行自检,有利于检查所依赖的 属性是否注入。

DI 依赖注入 (重点)

  • @Autowired 注解方式

      @Autowired:自动装配
          - 默认byType的方式注入
          - 通过将@Autowired注解放在构造器上来完成构造器注入,默认构造器参数通过类型自动装配
          - 通过将@Autowired注解放在构造器上来完成字段注入
          - 通过将@Autowired注解放在方法上来完成方法参数注入
      @Resource
          - java java的注解,默认使用byName的方式,
      java 代码:
      @Autowired //构造器注入  
      private Test(String message) {  
          this.message = message;  
      } 
      // 属性注入
      @Autowired
      public String message;
  • 构造器注入 (默认构造器参数、通过类型装配)

    使用带参构造方法 constructor-arg 在XML文件中同样不用的形式,而是使用标签 ref属性同样指向其它标签的name属性(参考java自学宝典544)

    // java
    public class Person{
      private String name;
      private int age;
      public Person(){};
      public Person(String name,int age){
        super();
        this.name = name;
        this.age = age;
        }
    }
     <!--xml-->
     <!--无setter方法通过构造方式装配Person实例-->
    
      <bean name = "person" class = "****.Person">
            <constructor-arg index = "0" value="lxs"/>
            <constructor-arg index = "1" value="21"/>
      </bean>
      <!--通过setter装配Person实例-->
    
      <bean name = "person" class = "****.Person">
            <property  name="name" value="lxs"/>
            <property name="age" value="21"/>
      </bean>
  • 静态工厂注入

      TODO
  • 实例工厂注入

      TODO

Spring Annotation (重点)

@Component 装配自己写的类

@Bean 装配外部写的类

@Autowired Bean的自动装配

@Resource

@Service 标注一个业务逻辑组件类

@Controller 标注一个控制器组件类

@Repository :标注一个DAO组件类

Spring Bean 的作用域

Singleton :单例模式,IoC容器中只会存在一个实例对象,每一个context中只有一次实例spring默认是单例的。 Prototype:

参考一二组第二次考试答案

  1. singleton:Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象`。Singleton作用域是Spring中的缺省作用域。

  2. prototype:每次通过Spring容器获取prototype定义的bean时,容器都将创建一个新的Bean实例,每个Bean实例都有自己的属性和状态,而singleton全局只有一个对象。

  3. request:在一次Http请求中,容器会返回该Bean的同一实例。而对不同的Http请求则会产生新的Bean,而且该bean仅在当前Http Request内有效。

  4. session:在一次Http Session中,容器会返回该Bean的同一实例。而对不同的Session请求则会创建新的实例,该bean实例仅在当前Session内有效。

  5. global Session:在一个全局的Http Session中,容器会返回该Bean的同一个实例,仅在使用portlet context时有效。

Spring AOP (重点)

参考 AOP

Spring 事务处理 (重点)

TODO //待办

SpringMVC 的流程(重点)

参考 SpringMVC

springBean 的 生命周期(熟悉)

参考 SpringMVC

Last updated