Spring 3.x 企业应用实战—— IoC 配置概述

Spring 配置概述
用户可以通过属性注入、构造函数注入的方式建立Bean和Bean的依赖;可以通过字面值的方式设置Bean的属性,也可以通过ref引用容器中其他的Bean;Spring为集合
类提供了专门的配置标签;使用Spring简化配置方式可以让配置文件更加紧凑;可以通过配置文件中的<bean>标签建立关联、继承、依赖、引用的关系,合理地使用这些关系可以简化配置、提高配置质量;Spring提供了5个Bean作用范围,在Web应用环境下,可以使用request、 session和globalSession的Bean作用域;通过@Component及另外三个衍型注解(@Repository、@Service、@Controller)配合@Autowired
就可以很好地使用基于注解的配置进行Bean的定义和注入,这种方式比在XML文件中通过<bean>提供配置文件更加简单;任务POJO标注了@Configuration
注解后就可以为Spring容器提供Bean的定义信息,在类方法中标注@Bean相当于定义了一个Bean,同时还提供了Ben的实例化逻辑。由于Bean的实例化逻辑
是在方法中定义的,因此他可以应对一些复杂的Bean的实例化场景。不管配置使用何种配置方式,Spring都可以很好地将他们整合起来,在Spring容器内部,
这些不同方法的Bean定义信息是大体相同的,三者指甲并不存在谁替代谁的问题,他们都有自己最合适的应用场合。

一、Spring容器高层视图
  Bean的实现类
  Bean的属性信息,数据库连接数、用户名、密码
  Bean的依赖
  Bean的行为配置

二、基于XML的配置

schema格式

<?xml version="1.0" encoding="UTF-8"?><beans
xmlns="http://www.springframework.org/schema/beans"
xmlns.xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns.aop="http://www/springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/beans/spring-aop-3.0.xsd
">
<!--默认命名空间的配置-->
<bean id="a" class=""/>

<!--aop命名空间的配置-->
<aop:config>
</aop:config>
</beans>

  

依赖注入
  1、属性注入
  2、构造函数注入
    按照类型匹配入参
    按照索引匹配入参
    联合使用类型和索引匹配入参
    通过自身类型反射匹配入参
  3、工厂方法注入
    由于Spring IoC容器以框架的形式提供工厂方法的功能,并以透明的方式开放给开发者,所以很少需要手工编写基于工厂方法的类。不过在一些遗留系统或第三方类库中,我们还会碰到工厂方法,这时用户可以使用Spring工厂方法注入的方式进行配置。
    非静态工厂方法
    静态工厂方法
  4、方法注入
    lookup方法注入 无状态Bean的作用域一般配置为singletion单实例模式,如果我们往singletion的类A中注入prototype的类B,并希望每次调用A的getB()都 能返回一个新的B,使用传统的注入方法无法实现这样的要求。使用lookup方法注入可以实现
方法替换 可以使用Bean的方法去替换另一个Bean的方法

注入参数详解
  1、字面值
  2、引用其他Bean
  3、内部Bean
  4、null值 <value></value>
  5、级联属性 <property name="a.b.c" value="">
  6、集合类型属性

简化配置方式
  1、字面值属性
  2、引用对象属性
  3、使用p命名空间
  4、自动装配

<bean>之间的关系
  1、继承
  2、依赖
  3、引用

整合多个配置文件
  1、在启动Spring容器时,通过一个Spring数组来指定这些配置文件
  2、应用层面提供一个整合的配置文件,通过<import>将各个模块整合起来,这样容器在启动时,只需要关注这个整合的配置文件就可以了

Bean的作用域
  1、singleton
  一般情况下,无状态或者状态不可变的类适合使用单例类。在传统开发中,由于Dao类执有Connection这个非线程安全的变量而没有采用单例模式
而在Spring环境下,对于所有的Dao类都可以采用单实例模式,因为Spring利用AOP和LocalThread的功能,对非线程安全的类的变量(或称状态)
进行了特殊的处理,使这些非线程安全的类变成线程安全的类。
  2、prototype
  3、request作用域
  4、session作用域
  5、globalSession作用域

FactoryBean
实例化Bean得过程如果比较复杂,可以使用Spring提供的 org.springframework.beans.factory.FactoryBean工厂类接口定制实例化Bean的逻辑

三、基于注解的配置

  @Compoment: Spring容器自动将POJO转换为容器管理的Bean;
  @Repository: 用于对Dao实现类进行标注;
  @Service:用于对Service实现类进行标注;
  @Controller:用于对Controller实现类进行标注

使用注解配置信息启动Spring容器
  声明context命名空间,扫描类包以应用注解定义的Bean <context:component-scan base-package="">

自动装配Bean
  通过@Autowired进行自动注入
  使用@Auto的required属性
  使用@Qualifier指定注入Bean的名称
  

对类方法进行标注

对集合类进行标注

对标准注解的支持
  @Resource 自动采用标注处的变量名或方法名作为Bean的名称
  @Inject

Bean作用范围及生命过程方法
  @Scope指定Bean的作用范围
  @PostConstruct @PreDestory改变Bean的生命过程

四、基于Java类的配置
使用Java类提供Bean定义信息
  普通POJO只要标注@Configuration注解,就可以为Spring容器提供Bean定义的信息了

使用基于Java类的配置信息启动Spring容器
  使用AnnotationConfigApplicationContext
  通过XML配置文件引用@Configuration的配置 <context:component-scan base-package="" resource-pattern=".class">
  通过 Configuration配置类引用XMl配置信息 @ImportResurce

时间: 2024-08-19 10:14:49

Spring 3.x 企业应用实战—— IoC 配置概述的相关文章

Spring 3.x 企业应用实战—— IoC 概述

Spring中IOC的概念,控制反转概念其实包含两个层面的意思,“控制”是接口实现类的选择控制权:而“反转”是指这种选择控制权从调用者转移到外部第三方或容器的手中.BeanFactory.ApplicationContext和WebApplicationContext是Spring框架三个最核心的接口,框架中其他大部分的类都围绕他们展开.为他们提供支持和服务.在这些支持类中,Respurce是一个不可忽视的重要接口,框架通过Resource实现了和具体资源的解耦,不论他们位于何种存储介质中,都可

Spring 3.x 企业应用实战—— AOP基础

AOPAOP是OOP的有益补充,他为程序开发提供了一个崭新的思考角度,可以将重复性的横切逻辑抽取到统一的模块中,通过OOP的纵向抽象和AOP的横向抽取,程序才能真正解决复杂性代码问题. Spring采用JDK动态代理和CGLib动态代理的技术在运行期间植入增强,所以我们不需要装备特殊的编译器或者类装载器就可以使用AOP的功能.要使用JDK动态代理,目标类必须实现接口,而CGLib不对目标类做任何限制,他通过动态生成目标子类的方式提供代理.JDK在创建代理对象时性能高于CGLib,而生成代理对象的

Spring cloud微服务安全实战-7-5配置grafana图表及报警

先过一下grafana的配置文件 grafana的配置文件. 右键服务的地址.发信人 账号 和面等 配置要连到prometheus上. 登陆的密码是多少,第二行是不允许用户注册. dashboard.json里面内容太多 不能完全的看懂. 界面 admin password 新建一个dashboard 导入一个事先已经写好的了. 去找我们刚才看的那个 dashboard.jsn的文件 这个就是我们刚才在配置文件内配置的数据源.就是那个本地9090的那个prometheus duratin:服务的

Spring cloud微服务安全实战-7-1章节概述

前面的章节都是围绕这微服务的安全在讲一些东西,包括微服务本身api的安全.网关的安全.怎么去做安全中心,包括认证服务器,权限的服务.权限的设计,怎么来实现SSO.然后sentinel来实现统一的熔断,限流,这些都是和安全相关的知识点.前面讲的这些东西都是保证你的服务不出问题的.但是一个永远不出现问题的服务是不可能存在的,这时候我们就需要一些可见性的保证,让我来及时的发现问题,然后去排查这些问题. 本节会讲三套系统分别对应调用链监控.指标监控.日志监控 各自的特点, Metrics:所有可以用数字

《Spring 3.x 企业应用开发实战》目录

图书信息:陈雄华 林开雄 编著 ISBN 978-7-121-15213-9 概述: 第1章:对Spring框架进行宏观性的概述,力图使读者建立起对Spring整体性的认识. 第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界. 第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念.同时,对Spring框架的三个最重要的框架级接口进行了剖析,并对Bean的生命周期进行讲解. 第4章:讲解如何

轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Java EE经典著作) 李刚 编著   ISBN 978-7-121-24253-3 2014年10月出版 定价:108.00元 824页 16开 编辑推荐 国内知名IT图书作家李刚老师基于曾荣获中国书刊发行业协会“年度全行业优秀畅销品种”大奖的<轻量级Java EE企业应用实战(第3版)>全新升级:

Spring+MYBatis企业应用实战pdf高清版免费下载

下载地址:网盘下载 备用地址:网盘下载 内容提要编辑<Spring+MyBatis企业应用实战>介绍了Java EE 领域的两个开源框架:Spring 的MVC 和MyBatis.其中Spring 的版本为4.2,MyBatis 的版本是3.4.本书的示例建议在Tomcat 8 上运行.<Spring+MyBatis企业应用实战>重点介绍如何整合Spring MVC 4+MyBatis 3 进行Java EE 开发,主要包括三个部分.第一部分详细介绍了Spring MVC 框架的用

Spring 框架的概述以及Spring中基于XML的IOC配置

Spring 框架的概述以及Spring中基于XML的IOC配置 一.简介 Spring的两大核心:IOC(DI)与AOP,IOC是反转控制,DI依赖注入 特点:轻量级.依赖注入.面向切面编程.容器.框架.一站式 优势: 方便解耦:做到编译期不依赖,运行期才依赖 AOP的支持 声明式事务的支持 方便程序的测试 方便整合各种框架 降低JavaEE API的使用难度 Spring源码很厉害 解耦: 耦合包括:类之间的和方法之间的 解决的思路: 在创建对象的时候用反射来创建,而不是new 读取配置文件

基于注解的Ioc配置 —— Spring(五)

注解配置和Xml配置要实现的功能是一样的,都是要降低程序间的耦合,只是配置的形式不一样. 实际开发中,具体采用注解还是Xml配置,按公司要求. 常用注解: @Component:把资源让Spring来管理,相当于在xml当中配置一个bean. value:指定bean的id,如果不指定value属性,默认bean的id是当前类的类名.首字母小写. @Controller @Service @Repository:都是@Component的衍生注解,作用以及属性都是一样的,只不过提供了更加明确的语