spring框架_Spring框架和Spring Boot框架的区别

什么是Spring Boot框架?什么是Spring框架?他们的目标是什么?他们产生的背景是怎样的,两者有什么区别,我们应该使用哪个框架进行开发,带着这样的疑问,我们开始今天的讲解。

c717e5d24e6f3682c117518bd507c29e.png

Spring框架背景

Spring框架是Java最受欢迎的应用程序开发框架之一。Spring的最佳功能是它具有依赖注入(DI)控制反转(IOC), 这使我们能够开发松耦合的应用程序。而且,松耦合的应用程序可以轻松地进行单元测试。 隔壁的PHP中的Laravel为什么大手欢迎,也是它实现了依赖注入、控制反转的功能。

5602783cc63b777ed06bfbc5e3172906.png

依赖注入

考虑下面的示例- MyController 要通过 MyService 来执行特定任务。因此,首先我们要获取MyService的实例,我们将使用:

MyService service = new MyService();

现在,我们为创建了实例 MyService ,我们看到两者紧密耦合。如果MyService 在的单元测试中 创建的模拟 MyController ,如何 MyController 使用该模拟?有点困难-是吗?

@RestControllerpublic class MyController { private MyService service = new MyService(); @RequestMapping("/welcome") public String welcome() { return service.retrieveWelcomeMessage(); }}

依赖注入的示例

仅通过两个注释,我们就可以MyService 轻松获得实例,而实例之间 并不是紧密耦合的。Spring框架做了所有艰苦的工作,使事情变得更简单。

  • @Component 在Spring 中只是简单地用作需要在自己的BeanFactory(Factory模式的实现)中进行管理的bean。
  • @Autowired 在Spring 中仅用于习惯找到该特定类型的正确匹配并将其自动装配。

因此,Spring框架将为其创建一个bean MyService 并将其自动连接到中 MyController。

在单元测试中,Spring框架可以将模拟MyService 自动关联到 MyController 。

@Componentpublic class MyService { public String retrieveWelcomeMessage(){ return "Welcome to InnovationM"; }}@RestControllerpublic class MyController { @Autowired private MyService service;  @RequestMapping("/welcome") public String welcome() { return service.retrieveWelcomeMessage(); }}

Spring框架还有许多其他功能,以下是一些它比较流行的模块:

  • Spring JDBC
  • Spring MVC
  • Spring AOP
  • Spring ORM
  • Spring JMS
  • Spring TEST
  • Spring(SpEL)

面向切面的编程(AOP)是Spring框架的另一个强项。面向对象编程中强调的是,而在AOP中,强调的是

例如,如果要在项目,日志记录等中添加安全性,则可以仅使用AOP并将其作为跨领域的关注点,而不涉及主要业务逻辑。可以在方法调用之后,方法调用之前,方法返回之后或异常发生之后执行任何操作。

Spring框架没有自己的ORM,但是它提供了与ORM的很好的集成,例如Hibernate,Apache iBATIS等。

简而言之,我们可以说Spring框架提供了一种分离的方式来开发Web应用程序。借助Spring中的这些概念(例如Dispatcher Servlet,ModelAndView和View Resolver),Web应用程序开发变得容易。

Spring Boot背景

现在,如果您已经使用过Spring,请考虑一下在开发具有所有功能的成熟Spring应用程序时遇到的问题。设置Hibernate数据源,实体管理器,会话工厂和事务管理非常的复杂,并且要花费大量的时间。对于开发人员来说,使用带有最少功能的Spring MVC建立基本项目可能就需要花费大量时间。

 /WEB-INF/views/.jsp
dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation/WEB-INF/my-servlet.xml1dispatcher/

使用Hibernate时,我们必须配置诸如数据源,EntityManager等之类的东西。

Spring Boot解决办法

  1. Spring Boot会完成所有使用的工作, 自动配置并且会处理应用程序所需的所有内部依赖关系-您所需要做的就是运行应用程序。如果Spring jar 在类路径中,则Spring Boot将使用Dispatcher Servlet自动配置 。如果Hibernate jar 在类路径中,它将自动配置到数据源 。Spring Boot为我们提供了一组预配置的Starter项目,这些项目将作为依赖项添加到我们的项目中。
  2. 在Web应用程序开发期间,我们将需要使用的jar,使用的jar版本以及如何将它们连接在一起。所有Web应用程序都具有类似的需求,例如Spring MVC,Jackson Databind,Hibernate core和Log4j(用于日志记录)。因此,我们必须选择所有这些jar的兼容版本。为了降低复杂性,Spring Boot引入了我们所谓的Spring Boot Starters。

Spring Web Project的依赖关系

d887e0ca92cc9b918d4c51c3fde464e3.png
org.springframework spring-webmvc 4.2.2.RELEASEcom.fasterxml.jackson.core jackson-databind 2.5.3org.hibernate hibernate-validator 5.0.2.Finallog4j log4j 1.2.17

Starters 是一组方便的依赖项,可以将其包含在Spring Boot应用程序中。对于使用Spring和Hibernate,我们只需要在项目中包括spring-boot-starter-data-jpa依赖项。

Spring Boot Starter Web依赖

org.springframework.boot spring-boot-starter-web

Spring Boot项目有很多软件包。一旦添加了该启动程序依赖项,Spring Boot Starter Web就会预先打包所有这些文件。作为开发人员,我们无需担心这些依赖关系及其兼容版本。

Spring Boot Starter项目选项

这些是很少的入门项目,可帮助我们快速开发特定类型的应用程序。

  • spring-boot-starter-web-services:SOAP Web服务
  • spring-boot-starter-web:Web和RESTful应用程序
  • spring-boot-starter-test:单元测试和集成测试
  • spring-boot-starter-jdbc:传统JDBC
  • spring-boot-starter-hateoas:将HATEOAS功能添加到您的服务中
  • spring-boot-starter-security:使用Spring Security进行身份验证和授权
  • spring-boot-starter-data-jpa:带有Hibernate的Spring Data JPA
  • spring-boot-starter-cache:启用Spring框架的缓存支持
  • spring-boot-starter-data-rest:使用Spring Data REST公开简单的REST服务
8b53c9d4920d898e4e09d885d4c29f8f.png

正是有了Spring Boot,让我们告别了繁琐的配置,可以更加快速专注地开发我们的web应用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值