• spring介绍


    ca878481388246e0a7fc016b9975c16f.gifspring

     

    1.优点

      1)针对接口编程,解耦合

      2)aop:变向切面编程,动态增加功能

      3)方便集成框架,mybatis,hibernate,strust等

      4)降低j2ee接口的使用难度

     

    2.spring是干什么的

      管理bean及bean的依赖关系的一个容器,为降低bean之间耦合度问题而开发,核心是控制反转(IOC)和面向切面编程(AOP)

        控制反转(IOC:):对象的创建交给容器来完成

        面向切面编程(AOP):系统级服务和主业务逻辑分开,降低耦合度,使系统级服务织入主业务逻辑

     

    IOC:

    3.(配置式开发)spring容器都干了什么

      读取配置文件

      创建bean对象(使用反射机制调用无参构造方法),将对象保存在内存Map中

      给有依赖关系的对象赋值

     

    4.spring容器的实现接口有哪些

      ApplicationContext:创建容器时就创建了bean对象,并将对象放到内存中

      BeanFactory:创建容器对象时不创建bean对象(懒加载模式:用的时候才创建)

     

    5.spring框架中bean对象的创建过程,有几种创建方式

      在配置文件中使用bean标签注册bean对象

      2种方式:

        默认创建方式:调用bean对象的无参构造方法

        (实例)工厂模式创建bean:需要在配置文件中注册工厂对象以及注册工厂对象的方法(此方式耦合度高,因为实例工厂中写死了Java对象)

     

    6.什么是工厂模式,什么时候用工厂模式

      工厂模式:当创建对象时若比较繁琐,可以将这些繁琐的创建过程封装到一个方法中,调用此方法来创建对象,这就是工厂模式

      什么时候用:创建复杂对象时

     

    7.spring框架中bean的作用域

      在配置文件中,使用scope关键子给bean指定作用域

      spring支持5种作用域:singleton(单例作用域,spring默认的作用域)、prototype(原型作用域:每创建一次都是新的对象)、request、session、globalSession

     

    8.spring中给bean对象的属性赋值(也叫注入)

      对bean对象属性赋值同样是由容器完成的

      根据注入方式不同分为2种:

        设值注入:调用bean对象的set方法给属性赋值(常用)

        构造注入:调用bean对象的构造方法时给属性赋值并创建对象(不常用)

      根据注入的实现方式不同也分2种:

        1.基于配置文件:(掌握,内容较多,不常用)

        2.基于注解:(掌握,常用)

     

    9.注解式开发bean对象的创建,创建前需要做什么

      在配置文件中使用context:component-scan标签注册组件扫描器

      多个包下都使用了注解怎么解决:

        1.使用多次context:component-scan标签

        2.base-package值中使用逗号或分号分隔(推荐使用此方法)

        3.指定父包(不推荐使用)

     

    10.基于注解方式开发,创建bean对象有哪些注解,怎么用

      以下注解均是用于创建对象:

        @Repository:用在Dao层的类上

        @Service:用在Service层的类上

        @Controller:用在UI层的类上

        @Component:以上三个注解都不能使用或者不合格使用时就使用此注解,不使用value属性时,对象的名称默认是类名的首字母小写

     

    11.基于注解方式开发,设置bean对象的作用域

      使用@Scope注解,在value值中设置

     

    12.基于注解方式开发,给bean对象赋值有哪些注解,怎么用

      以下注解均是用于给属性赋值:

        @Value:给简单类型属性赋值,可以放在属性定义上(不需要set方法的),可以放在属性的set方法上

        @Autowired:spring框架中的。给引用类型的属性赋值,默认是按类型注入的。若按名称来注入需同时使用@Qualifier(value="BeanID")注解

          Autowired有一个属性required,默认为true,意思是必须成功给引用类型赋值,否则程序终止并报错。若为false意思是不能成功赋值则为null

        @Resource:不是spring框架中的,是jdk中的。给引用类型的属性赋值,默认是按类型注入的。若按名称来注入需要使用@Resource注解的name属性,name属性指定BeanID

      给属性赋值一般是设值注入,不使用构造注入。

     

    13.bean对象的生命始末

      基于配置文件:在bean标签中使用属性init-method、destroy-method

      基于注解方式:在方法上使用@PostConstruct(bean对象初始化后执行)、@PreDestroy(bean对象销毁之前执行)

  • 相关阅读:
    长时间戴耳机耳朵不舒服?骨传导耳机可以缓解这个问题
    all3dp.com网站中全部Arduino项目(2022.7.1)
    05-CSS溢出属性&文本溢出省略号
    JSR-133: JavaTM Memory Model and Thread Specification原文解析
    机器学习模型—K means
    Java实现拼图小游戏(3)—— 添加图片(含JFrame源码阅读)
    Flink SQL: JAR Statements
    2023.11.9 IDEA 配置 Lombok
    NewStarCTF2023week2-base!(base低位隐写)
    Effective C++条款22:将成员变量声明为private(Declare data members private)
  • 原文地址:https://blog.csdn.net/weixin_57763462/article/details/136423805