首页 > 其他分享 >springboot

springboot

时间:2023-07-20 20:46:59浏览次数:47  
标签:springboot jdk Spring 配置 Boot Bean spring

这几天查阅了几十篇文章,总结了springboot的一些心得。

一.Spring Boot 是什么

  从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在 Java EE 开发中真正意义上的标准,但是随着技术的发展,Java EE 使用 Spring 逐渐变得笨重起来,大量的 XML 文件存在于项目之中。繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的降低。                     2012 年 10 月 Mike Youngstrom 在 Spring jira 中创建了一个功能请求,要求在 Spring 框架中支持无容器 Web应用程序体系结构。他谈到了在主容器引导 spring 容器内配置 Web 容器服务。这是 jira 请求的摘录:我认为Spring 的 Web 应用体系结构可以大大简化,如果它提供了从上到下利用 Spring 组件和配置模型的工具和参考体系结构。在简单的 main()方法引导的 Spring 容器内嵌入和统一这些常用 Web 容器服务的配置。这一要求促使了 2013 年初开始的 Spring Boot 项目的研发,到今天 Spring Boot 的版本已经到了 3.2.0。SpringBoot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。它集成了大量常用的第三方库配置,Spring Boot 应用中这些第三方库几乎可以是零配置的开箱即用 out of the box,大部分的 Spring Boot 应用都只需要非常少量的 Java 配置代码,开发者能够更加专注于业务逻辑。

二.spring boot的优点

 

1.简化编码

  举个例子,如要创建一个 web 项目,使用 Spring 的人都知道,在使用 Spring 的时候,需要在 pom 文件中添加多个依赖,而 Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中只需要在 pom 文件中添加一个 starter-web 依赖即可。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 点击进入该依赖后可以看到,Spring Boot 这个 starter-web 已经包含了多个依赖,包括之前在 Spring 工程中需要导入的依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <scope>compile</scope> </dependency> 由此可以看出,Spring Boot 大大简化了编码,不用一个个导入依赖,直接一个依赖即可。  

2.简化配置

Spring 虽然使 Java EE 轻量级框架,但由于其繁琐的配置,一度被人认为是配置地狱。各种 XML、Annotation配置会让人眼花缭乱,而且配置多的话,如果出错了也很难找出原因。Spring Boot 更多的是采用 Java Config的方式,对 Spring 进行配置。新建一个类但是不用@Service 注解,也就是说,它是个普通的类,那么如何使它也成为一个 Bean 让 Spring去管理呢?只需要@Configuration 和@Bean 两个注解即可,例如 public class TestService { public String sayHello () { return "Hello Spring Boot!"; } } 对应的配置类 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class JavaConfig { @Bean public TestService getTestService() { return new TestService(); } } @Configuration 表示该类是个配置类,@Bean 表示该方法返回一个 Bean。这样就把 TestService 作为 Bean 让Spring 去管理了,在其他地方如果需要使用该 Bean,和原来一样,直接使用@Resource 注解注入进来即可使用,非常方便。

3.简化部署

在使用Spring时项目部署时需要在服务器上部署 tomcat,然后把项目打成war 包扔到 tomcat 里,在使用Spring Boot 后,不需要在服务器上去部署 tomcat,因为 Spring Boot 内嵌了 tomcat,只需要将项目打成 jar 包,然后 使用 java -jar xxx.jar 一键式启动项目。 另外,也降低对运行环境的基本要求,环境变量中有 JDK 即可

4.简化监控

可以引入 spring-boot-start-actuator 依赖,直接使用 REST 方式来获取进程的运行期性能参数,从而达到监控的目的,比较方便。但是 Spring Boot 只是个微框架,没有提供相应的服务发现与注册的配套功能,没有外围监控集成方案,没有外围安全管理方案,所以在微服务架构中,还需要 Spring Cloud 来配合一起使用

 三、springboot的使用

1、Spring Boot 开发环境   1.jdk 的配置     使用 IDEA 进行开发,在 IDEA 中配置 jdk 的方式很简单,打开 File->Project Structure   1. 选择 SDKs   2. 在 JDK home path 中选择本地 jdk 的安装目录   3. 在 Name 中为 jdk 自定义名字     通过以上三步骤,即可导入本地安装的 jdk。如果是使用 STS 或者 eclipse 可以通过两步骤添加: 1、window->preference->java->Instralled JRES 来添加本地 jdk。 2、window-->preference-->java-->Compiler 选择 jre,和 jdk 保持一致。 2. Spring Boot 工程的构建 2.1 IDEA 快速构建 IDEA 中可以通过 File->New->Project 来快速构建 Spring Boot 工程。选择 Spring Initializr,在 Project SDK 中 选择刚刚导入的 jdk,点击 Next,到了项目的配置信息。 Group:填企业域名,一般采用域名反装的方式定义,例如使用 com.yan Artifact:填项目名称,例如工程名 demo,如果项目规模较大这里可能会采用模块名称 Dependencies:可以添加项目中所需要的依赖信息,根据实际情况来添加,这里只需要选择 Web 即可。 2.2 官方构建 第二种方式可以通过官方构建,步骤如下: 1、访问 http://start.spring.io/或者 http://start.aliyun.com/。 2、在页面上输入相应的 Spring Boot 版本、Group 和 Artifact 信息以及项目依赖,然后创建项目。 3、下载解压后,使用 IDEA 导入该 maven 工程:File->New->Model from Existing Source,然后选择解 压后的项目文件夹即可。如果是使用 eclipse 可以通过 Import->Existing Maven Projects->Next,然后选择解 压后的项目文件夹即可。

 

 

标签:springboot,jdk,Spring,配置,Boot,Bean,spring
From: https://www.cnblogs.com/fenglei1/p/17569521.html

相关文章

  • springboot元注解@Target@Retention@Documented
        @Target(ElementType.METHOD)是一个元注解,用来标注注解的作用目标。这里的@Target(ElementType.METHOD)表示该自定义注解可以用于方法上。@Retention(RetentionPolicy.RUNTIME)是一个元注解,用来标注注解的保留策略。这里的@Retention(RetentionPolicy.RUNTIME)表......
  • springboot学习之十一(统一返回结果)
    SpringBoot统一返回结果在实际开发中,为了降低开发人员之间的沟通成本,一般返回结果会定义成一个统一格式,具体的格式根据实际开发业务不同有所区别,但至少包括三要素:code状态码:由后端统一定义各种返回结果的状态码message描述:本次接口调用的结果描述data数据:本次返回的数据。{......
  • springboot i18n 国际化
    默认一:1、配置#主Springspring:messages:basename:i18n.rsltMessage,i18n.errorCodeMessage 2、多语言文件在resources下新建i18n文件夹 ,在在这个下面建立多语言:rsltMessage.propertiesrsltMessage_ar_SA.propertiesrsltMessage_en_US.propertiesrsltMe......
  • Vue+springboot集成PageOffice实现在线编辑Word、excel文档
    说明:PageOffice是一款在线的office编辑软件,帮助Web应用系统或Web网站实现用户在线编辑Word、Excel、PowerPoint文档。可以完美实现在线公文流转,领导批阅,盖章。可以给文件添加水印,在线安全预览防止用户下载和复制文件等一、环境要求前端Vue项目:Node.js10及以上版本(当前集成方式......
  • Idea SpringBoot 项目启动时提示程序包不存在和找不到符号
    从git上克隆了一个SpringBoot项目,并且使用Maven编译也通过了,奇怪的是当BuildProject时却提示符号不存在。如下图: 先查看导入的类是否存在,如果不存在的话,那查看一下是否缺少了maven依赖。我这边是可以访问到类的,并且jar包也导入成功了。 也尝试了网上的解决方法,设置Proj......
  • Spring + SpringMVC + SpringBoot + MyBatis 相关注解
    创建对象的:@Controller:放在类的上面,创建控制器对象,注入到容器中@RestController:放在类的上面,创建控制器对象,注入到容器中。作用:复合注解是@Controller,@ResponseBody,使用这个注解类的,里面的控制器方法的返回值都是数据@Service:放......
  • Springboot 整合Swagger Swagger使用教程
    swagger使用教程——快速使用swagger一、swagger简介官网:https://swagger.io/1、认识swaggerswagger是一个规范和完整的框架,用于生成、描述、调用和可视化RestFul风格的web服务,总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务......
  • springBoot——整合junit
    spring整合junit复习springBoot整合junitpackagecom.example.springboot_04;importcom.example.springboot_04.service.ServiceBook;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot......
  • springBoot——读取数据
    在yml文件中读取数据,用$符号就可以类似于这样的如果要读取yml里面全部的数据,就用自动装配来写而如果要用实体类来读取里面的数据packagecom.example.springboot_01.domain;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.spr......
  • 我开源了团队内部基于SpringBoot Web快速开发的API脚手架stater
    我们现在使用SpringBoot做Web开发已经比之前SprngMvc那一套强大很多了。但是用SpringBootWeb做API开发还是不够简洁有一些。每次WebAPI常用功能都需要重新写一遍。或者复制之前项目代码。于是我封装了这么一个抽出SpringBootWebAPI每个项目必备需要重复写的模块,和......