java入门->spring基础

Spring:开源的轻量级的应用开发框架

    特点:简化开发(对API进行简化); 

              解耦(spring帮我们去管理对象,包括对象之间的依赖关系);

              集成:可以集成其它的框架;

    Spring:本质是管理软件中的对象,即创建对象和维护对象之间的关系;

    Spring容器:

        1)Spring框架用来管理对象的一个核心模块;

        2)如何启动Spring容器:将Spring相关的jar文件拷贝到WEB-INF/lib下;

                                                 配置Spring的配置文件(applicationContext.xml) 

                                                 启动容器;

        3)利用容器创建对象:1)调用不代参的构造器;2)静态工厂;3)实例工厂;

        4)作用域:

              4.1)默认情况下,容器对于一个bean配置,只会创建一个实例;

              4.2)可以设置scope属性=“protptype”,每getbean一次,都会创建一个实例;

    生命周期

        1)init-method属性:指定初始化方法,容器在创建好相应的对象之后,会立即调用初始化方法;

        2)destroy-method属性:指定销毁方法,容器关闭之前会调用销毁方法;

              应用使用AbstractApplicationContext接口,销毁方法只针对作用域为单列的bean;

    延迟实例化: 

        默认情况下,容器在启动之后,会检查整个的配置文件,将配置为单个的bean,先创建好;如果设置Lazy-init属性

        为true,则容器不再按照默认情况进行处理(只有当getBean才会创建);

    IOC(控制反转):

        对象的依赖关系交给容器来管理;

    DI(依赖注入):

        容器通过调用对象的构造器或者set方法来建立对象之间的依赖关系;

    set方式的注入:

        有无参的构造器;有相应的get/set方法;

    构造器注入

        有带参的构造器,添加相应的配置 < contructor-org index="" ref=""/>

    自动装配:

        autowire:表示让容器自动装配(自动注入依赖关系);

        byName:查找和属性名称一致的bean,然后调用set方法来完成注入,如果找不到对应的bean,注入null;

        byType:容器查找与属性类型一致的bean,然后调用set方法来完成注入,如果找不到对应的bean,注入null,

                        如果找到多个则报错;

    注入基本类型的值 :可以使用value属性或者value元素;

    注入集合

        list集合,set集合,map元素和entry元素;props和prop元素;

    将集合作为第一个bean元素

        util:list元素;  util:set元素 ;    util:map元素;  util:properties元素;  util:properties可以读取proper文件内容;

    Spring表达式

        类似于EL表达式,用于读取bean对象的属性值;

    基于注解的组件扫描

        spring容器会检查指定包及其子包下面的所有类,如果该类包含了一些特定的注解,则spring容器会将其作为一个bean

        来进行管理,换句话讲,就是相当于在配置文件中增加一个元素,使用组件扫描,可以简化spring的配置文件;

        如何进行组件扫描:

            1)在spring配置文件中,添加<context:component-scan base-package=""/> 开启注解扫描,其中,

                  base-package指定要扫描的包;

            2)在类名前添加相应的注解

                  @component   @Repository ->持久化层    @Service ->业务层   @Controller  ->控制层

    作用域:@Scope来指定,值可以是prototype和singleton

    生命周期相关方法:@PostConstruct    @PreDestroy

    延迟加载:@Lazy(true)

    @ResponseBoby作用:将Controller方法返回的对象,通过适当的HTTPMessageConvertor转换为指定格式

                                           后,写入到Response对象的boby数据区;

                                           使用时,返回的数据不是HTML标签的页面,而是其它格式的数据eg:Json,xml;

    使用注解注入依赖关系

        1)@Autowired和@Qualifier :该注解支持构造器注入和set注入;

        2)@Resource :支持set方法注入,也可加到属性前;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值