- spring:春天--->给软件行业带来了春天
- Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然后,Sping的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
- 目的:解决企业应用开发的复杂性
- 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能。
- 范围:任何Java应用
- Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。
- 官网地址:https://spring.io/projects/spring-frameworkhttps://docs.spring.io/spring-framework/docs/current/reference/html/core.html
- 2002,首次推出了Spring框架的雏形:interface21框架!
- 2004年3月24号,Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。
- Rod Johnson,是Spring Framework创始人。
- Spring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有技术框架。
- 核心技术:依赖注入、事件、资源、i18n、验证、数据绑定、类型转换、SpEL、AOP。
- 测试:模拟对象、TestContext 框架、Spring MVC 测试、WebTestClient.
- 数据访问:事务、DAO 支持、JDBC、ORM、编组 XML。
- Spring MVC和 Spring WebFlux Web 框架。
- 集成:远程处理、JMS、JCA、JMX、电子邮件、任务、调度、缓存。
- 语言:Kotlin、Groovy、动态语言。
- Spring是一个开源的免费的框架(容器)!
- Spring是一个轻量级的、非入侵式的框架。
- 控制反转(IoC)和面向切面(AOP)
- 支持事务的处理,对框架整合的支持。
总结:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的框架
在Spring的官网有这个介绍:现代化的Java开发!说白了就是基于spring的开发。
- Spring framework
- Spring Boot
- 一个快速开发的脚手架。
- 基于SpringBoot可以快速的开发单个微服务。
- 约定大于配置!
- Spring Cloud
- SpringCloud是基于SpringBoot实现的
因为现在大多数公司都在使用SpringBoot进行快速开发,学习Springboot的前提,需要完全掌握Spring及SpringMVC!承上启下的作用!
Spring Framework的弊端:发展了太久之后,违背了原来的理念!配置十分繁琐,人称配置地狱。
1 UserDao接口
2 UserDaoImpl实现类
3 UserService业务接口
4 UserServiceImpl业务实现类
注意:
- 使用setUserDao来给外界提供接口注入实现。
5 控制层
6 小结
在我们之前的业务中,用户的需求变更或者实现方式变更可能会影响我们原来的代码,我们需要根据变动去修改源代码!如果程序代码量十分大,修改一次的成本代价十分昂贵!
我们使用了一个Set接口实现,对外暴露,已经发生了革命性的变化!
- 之前,程序是主动创建对象!控制权在程序员手上。
- 使用set注入后,并给外部暴露接口,程序不再具有主动性,而是等待外部被动的接收对象。
这种思想,从本质上解决了问题,我们程序员不用去手动创建和管理对象了,系统的耦合性大大降低,更加专注业务的实现上。这就是IOC的原型!
- 控制反转IoC(Inversion of Contorl),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种方法。没有IoC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建移交给第三方,个人认为控制反转就是:获得依赖对象的方式反转了。
- 采用XML方式配置Bean的时候,Bean的定义信息和实现分离的,而采用注解的方式可以把两者合为一体,bean的定义信息直接以注解的形式定义在实现类中,从而达到了零配置的目的。
- 控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的事IoC容器,其实现方法时依赖注入(Dependency InJection)
1 编写bean
2 编写xml=》注入bean到容器
3 使用bean测试
到此,我们继续根据spring来完善第2部分UserDao的案例
1 编写bean
同第二部分1~4部分,编写Service和Dao层的bean
2 编写xml=》注入bean到容器
3 使用bean测试
默认使用无参构造创建对象,这是默认的。
1 构造器参数下标
2 构造器参数类型
不推荐使用!第二种方式不建议使用,同类型不能精确指定,容易混淆。
3 构造器参数名称
Spring的配置很少,总共就下面5个一级标签。
下图可以看到,两个对象都相等,证明为就是一个别名而已。
另一种起别名的方法
用name
1 name
2 scope
指定bean的作用范围。
- 这个import,一般用于团队合作开发使用,他可以将多个配置文件导入合并为一个。
- 假设,现在项目中有多个人开发,这三个复制不同的类开发,不同的类开发,不同的类需要注册在不同的bean.xml文件中。我们可以利用import将所有人的beans.xml合并为一个总的。
- applicationContext.xml一般为spring默认配置文件。所以用这个作为总配置文件,使用的时候使用这个就可以了。
见第4章节。
- 依赖注入:set注入属性
- 依赖:属性
- 注入:bean对象中的所有属性,由容器来注入
1 测试对象bean
2 依赖属性-复杂对象bean
3 配置xml
多种类型的属性注入方式如下:
4 测试使用
我们可以通过P和C命名空间注入依赖
1 p:
p命名空间注入,可以直接注入属性的值:property
2 c:
c命名空间注入,通过构造器注入:constructor-args
3 使用测试
注意点:p命名和C命名空间不能直接使用,需要导入xml约束。
到此这篇spring webflux适用于什么场景(springwebflux性能)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-xnyh/42183.html