boot

面试题: SpringBoot 的自启动原理

与世无争的帅哥 提交于 2020-02-01 21:16:24
引言 不论在工作中,亦或是求职面试, Spring Boot 已经成为我们必知必会的技能项。除了比较老旧的政府项目或金融项目依旧使用如 SSM 或 SSH 做单体框架开发项目外,如今的各行各业基于项目的快速开发与发布、迭代更新,都在逐渐替换使用 Spring Boot 框架,而逐步摒弃配置沉重和效率低下的 Spring 启动框架。 使用一门新的技术,立足于对它足够了解的基础上,能够让你更加得心应手的去进行应用、开发。SpringBoot 的精髓 “自动配置原理” 不仅仅是在面试过程中才用的上;在工作中如果能深入理解Spring Boot 的自动配置原理,我们就可以根据自己的需求自定义一个 started 满足开发的需求,让开发更加便捷与高效。 Spring Boot的出现,得益于“习惯优于配置”的理念,没有繁琐的配置、难以集成的内容(大多数流行第三方技术都被集成),这是基于Spring 4.x提供的 按条件配置 Bean的能力。 本篇博文主要针对三个方面进行分析、讲解;这三个方面分别是: Spring Boot 与 Spring 的差别与优点?以及与 Spring MVC 的关系? Spring Boot 主启动类的启动机制 Spring Boot 的 自动配置原理是怎么实现的? 根据自动配置原理自定义一个 个性的 started ? 1、 Spring Boot 与 Spring

JavaWeb——SpringBoot 系列(一)用IDEA+Maven搭建SpringBoot

余生长醉 提交于 2020-02-01 19:24:07
使用Maven搭建SpringMVC 一、关于 Spring Boot 二、IDEA+Maven 搭建 Spring Boot 1、新建一个空白 Maven 项目 2、编辑 POM 文件导入项目依赖 3、编写一个测试控制器 4、测试运行 一、关于 Spring Boot Spring Boot 地出现是为了让程序员从繁多的配置、低下的开发效率、复杂的部署中解脱出来,Spring Boot 使用”习惯优于配置“的理念,让开发者不用或者只需要很少的 Spring 配置便可以让项目快速运行。 Spring Boot 有以下特点: (1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs; (2)内嵌Tomcat或Jetty等Servlet容器; (3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置; (4)尽可能自动配置Spring容器; (5)提供准备好的特性,如指标、健康检查和外部化配置; (6)绝对没有代码生成,不需要XML配置。 二、IDEA+Maven 搭建 Spring Boot 利用编辑器 IDEA 和 Maven 搭建一个 Spring Boot 简单项目的一般步骤如下: 1、新建一个空白 Maven 项目 在 IDEA 的开始页上选择新建一个项目 选择新建 Maven 项目 直接

Spring Boot快速入门(二):http请求

ⅰ亾dé卋堺 提交于 2020-02-01 18:05:04
一、准备 postman :一个接口测试工具 创建一个新工程 选择web 不会的请看 Spring Boot快速入门(一):Hello Spring Boot 二、开始 新建java类RequestCtrl 1.添加一个all方法,使用@RequestMapping注解,可以处理所有的http请求 @RestController//这是一个控制器并只返回数据不寻找视图 public class RequestCtrl { @RequestMapping("/")//将本方法映射到/ public String all(String name, Integer age)//接受2个参数,name和age { return "这里是all\n" + "name: " + name + "\n" + "age: " + age; } } requestMapping的作用可以简单理解为给方法加个地址,让别人能访问 通过源码可以看出@RestController是@Controller和ResponseBody的结合注解 @Controller 表明这是一个控制器,将会返回数据或者页面 @ResponseBody 表明只会返回数据,Spring Boot默认将数据使用jaskson序列化为json返回 JSON(JavaScript Object Notation, JS 对象标记)

spring boot + docker远程发布镜像

ⅰ亾dé卋堺 提交于 2020-02-01 14:36:31
本文主要介绍搭建一个简单spring boot项目并发布镜像到远程docker服务器上。 环境: spring boot 2.1.0.RELEASE maven docker 19.03 IDEA 环境搭建 新建spring boot项目,增加测试方法 package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class,

解决Spring Boot 部署到服务器无法连接MySQL 问题

吃可爱长大的小学妹 提交于 2020-02-01 12:17:10
今天spring boot 项目终于写好了,打算部署在刚买的digital ocean服务器上,从github pull之后,执行: mvn clean compile package 报错提示: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-java-8.0.18.jar:8.0.18] 第一感觉是数据库连接的问题,先把application.properties里关于databse的内容全部comment: #spring.datasource.url=jdbc:mysql://***:3306/db_test?serverTimezone=GMT%2B8 #spring.datasource

Spring boot + Gradle + Eclipse打war包发布总结

可紊 提交于 2020-02-01 09:29:27
首先感谢两位博主的分享 http://lib.csdn.net/article/git/55444?knId=767 https://my.oschina.net/alexnine/blog/540651 buildscript { ext { springBootVersion = '1.5.2.RELEASE' } repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } jcenter() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } group 'com.gzkit' version '1.0.1-SNAPSHOT' apply plugin: 'java' apply plugin: 'eclipse'apply plugin: 'eclipse-wtp' apply plugin: 'org.springframework.boot' apply plugin: 'war' compileJava { options.encoding = 'UTF-8' options.compilerArgs <

Spring Boot模块划分

有些话、适合烂在心里 提交于 2020-02-01 07:54:24
模块划分 一、创建工程 首先通过Spring Initializr新建一个普通的spring boot项目,就命名为moduledemo吧 二、精简目录(不必须) 我们利用这个项目作为整个系统的父模块,也就是说我们刚刚建立的这个项目现在只起一个盒子的作用,因此我们可以直接把src和其他用不到的目录都删了。 三、创建模块 右键点击目录名,选择new->Module...根据第一步的方式在此工程中建立几个spring boot的module,也就是我们分模块最终分出来的各模块。 注意 : 推荐做法是每个子模块的groupId要相同,创建的时候注意一下。 比如我这里建立了以下4个模块,每个模块的groupId都是com.bupt 每个模块的功能及依赖关系,如下表所示。其中依赖关系中括号的意思是选择性依赖,如果有需要就依赖commons,如果没有需要就不加。 序号 模块名 功能 依赖关系 1 api 相当于三层架构中的controller层,用于处理和前端的交互 依赖于service(commons) 2 service 相当于三层架构中的service层,逻辑代码主要写在这里 依赖于dao(commons) 3 dao 相当于三层架构中的dao层,主要用来操作数据库 依赖于(commons) 4 commons 封装了一些供其他模块调用的一些工具类 四、修改pom 注意看代码中的注释

Spring Boot 核心配置文件 bootstrap & application 详解

泄露秘密 提交于 2020-02-01 01:16:24
在 Spring Boot 中有以下两种配置文件 bootstrap (.yml 或者 .properties) application (.yml 或者 .properties) bootstrap/ application 的区别   Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。 bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。 这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。 bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖 。 bootstrap/ application 的应用场景 application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。 bootstrap 配置文件有以下几个应用场景。 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息。 一些固定的不能被覆盖的属。 一些加密/解密的场景。 参考自

redhat安装Nvida驱动

非 Y 不嫁゛ 提交于 2020-01-31 21:16:09
Linux系统一般默认安装的是开源的nouvea显卡驱动,它与nvidia显卡驱动产生冲突,欲装nvidia必禁nouvea!其次Nvidia驱动默认安装OpenGL桌面,然而这又与GNOME桌面冲突,为了系统不宕机,也需禁用nvidia的OpenGL,过程中需要搭建gcc、kernel等环境。如此,可顺利安装NVIDIA显卡驱动。 关闭secure boot(坑1) 重启电脑,进入BIOS 找到seure boot,一般在boot选项中 将 “Enable” 改为 “Disable” 检测NVIDIA驱动 ## 查看系统是否存在NVIDIA驱动 # lspci | grep -i nvidia 下载NVIDIA驱动 选择适合本主机linux的nvidia官网驱动点击搜索后进行下载 禁用Nouveau驱动(坑2) 查看nouveau是否运行 修改 /lib/modprobe.d/dist-blacklist.conf 文件 将nvidiafb注释掉 #blacklist nvidiafb 1 添加两行 blacklist nouveau options nouveau modeset=0 1 2 修改 /etc/default/grub 文件 在GRUB_CMDLINE_LINUX中添加 rd.driver.blacklist nouveau nouveau.modeset=0 1

面试题: SpringBoot 的自启动、自动配置原理

混江龙づ霸主 提交于 2020-01-31 15:41:35
引言 不论在工作中,亦或是求职面试, Spring Boot 已经成为我们必知必会的技能项。除了比较老旧的政府项目或金融项目依旧使用如 SSM 或 SSH 做单体框架开发项目外,如今的各行各业基于项目的快速开发与发布、迭代更新,都在逐渐替换使用 Spring Boot 框架,而逐步摒弃配置沉重和效率低下的 Spring 启动框架。 使用一门新的技术,立足于对它足够了解的基础上,能够让你更加得心应手的去进行应用、开发。SpringBoot 的精髓 “自动配置原理” 不仅仅是在面试过程中才用的上;在工作中如果能深入理解Spring Boot 的自动配置原理,我们就可以根据自己的需求自定义一个 started 满足开发的需求,让开发更加便捷与高效。 Spring Boot的出现,得益于“习惯优于配置”的理念,没有繁琐的配置、难以集成的内容(大多数流行第三方技术都被集成),这是基于Spring 4.x提供的 按条件配置 Bean的能力。 本篇博文主要针对三个方面进行分析、讲解;这三个方面分别是: Spring Boot 与 Spring 的差别与优点?以及与 Spring MVC 的关系? Spring Boot 主启动类的启动机制 Spring Boot 的 自动配置原理 是怎么实现的? 根据自动配置原理自定义一个 个性的 started ? 1、 Spring Boot 与