boot

spring boot 入门 Hello World

天大地大妈咪最大 提交于 2020-02-05 20:52:11
本次案例环境说明: jdk1.8:Spring Boot 推荐jdk1.7及以上;java version "1.8.0_112" maven3.x:maven 3.3以上版本;Apache Maven 3.3.9 IntelliJIDEA2018:IntelliJ IDEA 2018.2.2 x64、STS SpringBoot 1.5.9.RELEASE:1.5.9; 第一步 创建maven项目 打开idea-->Create New Project -->选择Maven -->单击next—>输入姓名名称-->一直下一步。具体如下图: 第二步 导入spring boot相关的依赖 这个地方可能会出现项目的jar无法下载,这是因为idea会默认使用maven(3),使用只需要在settings-->maven 调整maven版本信息就行 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId>

Spring boot

橙三吉。 提交于 2020-02-05 19:24:22
Spring boot是拌嘴Spring4.0诞生的;旨在帮助开发者快速搭建Spring框架,简化了Spring的使用过程。 简化主要体现在下面几点: 1、使编码变得简单; 2、使配置变得简单; 3、使部署变得简单; 4、使监控变得简单; 不足: 虽然Spring Boot只是一个微框架,离微服务的实现还是有距离的,主要体现在: 1、没有提供相应的服务发现和注册的配套功能,自身的acturator所提供的监控功能需要和现有的监控对接; 2、没有配套的安全管控方案,对于REST的落地,还需要自行结合实际进行URL的规范化工作; SpringBoot和SEDA+MicroService+REST结合使用 1、上面的架构图中整体采用了SEDA,也就是Stage-EDA。可以看到,整体是以处理顺序进行展示的,响应的过程类似。在处理过程中,主要会前置过滤,核心功能处理,后置过滤几大部分。 2、图中的过滤器都是可插拔式的,并且可以根据实际场景进行扩展开发。每一个过滤器都是Stage,比如ClientInstance合法性检查、调用鉴权、解密、限流等等; 3、一个请求Stage和Stage的转换,实现上是切换不同的线程池,并以EDA的方式驱动。 4、对于业务逻辑的开发者而言,只需要关心Core部分的业务逻辑实现,其他的非功能都是由框架进行统一的实现。 来源: https://www

Spring Boot 微服务应用集成Prometheus + Grafana 实现监控告警

别说谁变了你拦得住时间么 提交于 2020-02-05 18:44:10
在本章中,我会介绍: 如何集成监控告警系统Prometheus 和图形化界面Grafana 如何自定义监控指标,做应用监控埋点 Prometheus 如何集成 Alertmanager 进行告警 理论部分 Prometheus Prometheus 中文名称为普罗米修斯,受启发于Google 的Brogmon 监控系统,从2012年开始由前Google工程师在Soundcloud 以开源软件的形式进行研发,2016年6月发布1.0版本。Prometheus 可以看作是 Google 内部监控系统Borgmon 的一个实现。 下图说明了Prometheus 的体系结构及其部分生态系统组件。其中 Alertmanager 用于告警,Grafana 用于监控数据可视化,会在文章后面继续提到。 在这里我们了解到Prometheus 这几个特征即可: 数据收集器,它以配置的时间间隔定期通过HTTP提取指标数据。 一个时间序列数据库,用于存储所有指标数据。 一个简单的用户界面,您可以在其中可视化,查询和监视所有指标。 详细了解请阅读 Prometheus 官方文档 Grafana Grafana 是一款采用 go 语言编写的开源应用,允许您从Elasticsearch,Prometheus,Graphite,InfluxDB等各种数据源中获取数据,并通过精美的图形将其可视化。

关于Spring Boot中的业务层(Service)是否要创建接口的分析

左心房为你撑大大i 提交于 2020-02-05 17:55:57
很多人在借助Spring Boot框架开发web项目时,在业务层(Service)这一部分,标准做法是:定义一个接口,然后再一个或多个类去实现。疑问来了: 为什么我们要维护两份同构代码,而不直接使用一个类呢? 不创建接口,通过把业务实现类直接通过注解@Autowired注入控制层Controller,也一点不耽误功能的实现啊,那么我为什么还要创建接口? 网上大部分回答都是说什么面向对象的解耦云云,引经据典,说得都很好,然而,都没有从根本上回答我们关心的问题: 为什么要用接口? 业务层(Service) 中为什么一定要用接口,不用行不行? 回答: 不是必须要使用接口,但强烈建议使用接口。 情景1 : 在开源框架中有很多这种情况,就是某个功能支持用户自定义扩展.说白了,它提供了一个接口,我们只需要实现这个接口,把我们自己的实现逻辑补上,就可以让框架按照我们的逻辑来执行.问题来了,框架的作者并不知道我们的实现类是什么,如果不定义一个接口,那么要如何在框架中调用我们的实现类呢? 情景2: 我和同事分别做项目的2个不同功能模块,但是同事的功能中却需要调用我这头实现的部分逻辑.为了让他有一个"占位符"可用,我是不是应该快速的写个接口扔给他呢? 情景3 : 一个适配器功能,或是说一个简单的工厂类,如果没有定义接口,那么面对众多实现类,要如何统一操作呢? 情景4 : 想让项目的代码符合某种"规范"

springboot的简单理解

江枫思渺然 提交于 2020-02-05 15:55:57
1.简介 SpringBoot是一个简化Spring开发的框架。采用约定大于配置的开发原则,去繁就简,能够快速的开发一个应用。在使用SpringBoot进行开发时只需要载入相应startert就可以用所有的Spring组件,其实springboot就是整合了很多优秀的框架,把原先框架所需的jar包依赖在springboot中换成了相应的启动器starter,此外不用我们自己手动的去写一堆xml配置,大多采用springboot的默认配置,当然可以修改默认配置。springboot就是集成了很多框架,然后帮我们默认配置了一些东西,我们可以拿来就用。极大的简化了配置。 Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter 相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。 2.优点 3.单体应用与微服务 单体应用是把所有的应用模块都写在一个应用中,导致项目越写越大,模块之间的耦合度也会越来越高,项目自然就变得越来越臃肿。微服务是一种架构风格,用微服务可以将应用的模块单独部署,对不同的模块进行不同的管理操作,不同的模块生成小型服务,每个功能元素最后都可以成为一个可以独立替换、独立升级的功能单元,各个小型服务之间通过http协议进行通信。 4.springboot的核心特点 1.微服务

Spring Boot项目整合JSP

回眸只為那壹抹淺笑 提交于 2020-02-05 10:08:12
现在的Spring Boot的页面模板主要支持Thymeleaf和FreeMarker,而JSP作为Java的最基本的页面模板也是支持的。但是相较Thymeleaf和FreeMarker,JSP使用起来比较麻烦。 下面我们来看看如何整合JSP到Spring Boot中: 1.创建Spring Boot项目时,添加Spring Web依赖 2.创建后在pom.xml文件中加入依赖: < ! -- 引入jsp依赖 -- > < dependency > < groupId > org . apache . tomcat . embed < / groupId > < artifactId > tomcat - embed - jasper < / artifactId > < version > 9.0 .30 < / version > < / dependency > < ! -- 添加jstl标签库依赖模块 -- > < dependency > < groupId > jstl < / groupId > < artifactId > jstl < / artifactId > < version > 1.2 < / version > < / dependency > 3.创建webapp目录,右击项目名,然后按F4或点击Open Module Settings

Spring Boot自动配置

余生长醉 提交于 2020-02-05 04:30:15
Spring Boot自动配置 原文链接:https://www.jianshu.com/p/a827ecdda99f https://www.bysocket.com/technique/2001.html 一、SpringBoot为我们做了那些配置 自动配置类都存放在spring-boot-autoconfigure-版本号.jar下的org.springframework.boot.autoconfigure中 当我们在application.properties中配置debug=true后启动容器。可以看到服务器初始化的初始化配置 DispatcherServletAutoConfigratio 注册前端控制器 EmbeddedServletContainerAutoConfiguration注册容器类型 HttpMessageConvertersAutoConfiguration注册json或者xml处理器 JacksonAutoConfiguration注册json对象解析器 如果加入其他功能的依赖,springBoot还会实现这些功能的自动配置 二、自动配置原理 1. 外化配置和自动配置 Spring boot 配置,包括自动配置和外化配置 可以键属性外化配置在application.properties应用配置文件,然后在工程中获取该属性。 对于自动配置

Spring Boot的自动配置

家住魔仙堡 提交于 2020-02-05 04:16:47
Spring Boot的自动配置 --摘自 https://www.hollischuang.com/archives/1791 随着Ruby、Groovy等动态语言的流行,相比较之下Java的开发显得格外笨重。繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大等问题一直被人们所诟病。随着Spring家族中的新星Spring Boot的诞生,这些问题都在逐渐被解决。 个人觉得Spring Boot中最重要的两个优势就是可以使用starter简化依赖配置和Spring的自动配置。 使用starter简化依赖配置 Spring提供了一系列starter来简化Maven配置。其核心原理也就是Maven和Gradle的依赖传递方案。当我们在我们的pom文件中增加对某个starter的依赖时,该starter的依赖也会自动的传递性被依赖进来。而且,很多starter也依赖了其他的starter。例如web starter就依赖了tomcat starter,并且大多数starter基本都依赖了spring-boot-starter。 Spring自动配置 Spring Boot会根据类路径中的jar包、类,为jar包里的类自动配置,这样可以极大的减少配置的数量。简单点说就是它会根据定义在classpath下的类,自动的给你生成一些Bean

Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean 解决方案

好久不见. 提交于 2020-02-04 15:17:07
SpringBoot启动时的异常信息 "C:\Program Files\Java\jdk1.8.0_161\bin\java" ......... com.fangxing.javalearning.annotationlearning.ComponentScanApp hello world . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.0.RELEASE) 2018-04-03 22:25:07.232 INFO 4976 --- [ main] c.f.j.a.ComponentScanApp : Starting ComponentScanApp on DESKTOP-BHGM3HS with PID 4976 (started by hasee in D:\test\projects\java-learning) 2018-04-03 22

SpringBoot集成DataSource

一笑奈何 提交于 2020-02-04 03:35:43
1.spring-boot-starter-xxxx:SpringBoot中自带的starter 2.xxx-spring-boot-starter:第三方和SpringBoot集成提供的starter druid-spring-boot-starter(包含:druid数据源的原始依赖+自配配置功能的依赖) druid数据源的原始依赖 <bean id="dataSource" class=""> <property name="" value=""> </bean> druid-spring-boot-starter 不需要自己手动的创建datasource,自配配置功能的依赖自动的把数据源的对象创建出来,并放到spring容器中. 搜索网址: https://github.com/alibaba/druid 具体使用: https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter 首先先要添加相应的依赖 1.1 添加Druid的依赖. <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.4</version> </dependency>