springboot笔记之helloworld
开发工具:IDEA 2019
springboot版本:2.1.9
一、springboot2.x VS 1.x
基础环境升级
- 最低 JDK 8,支持 JDK 9,不再支持 Java 6 和 7
依赖组件升级
- Spring Boot 2.0 基于 Spring Framework 5 构建,同时也升级了部分其依赖的第三方组件:
- Jetty 9.4
- Tomcat 8.5
- Flyway 5
- Hibernate 5.2
- Gradle 3.4
- Thymeleaf 3.0
默认软件替换和优化
- HikariCP:默认连接池已从 Tomcat 切换到 HikariCP,HikariCP 是一个高性能的 JDBC 连接池
- OAuth 2.0:Spring Boot 2.0 将 Spring Security OAuth 项目迁移到 Spring Security。不再提供单独的依赖包,通过 Spring Security 5 提供 OAuth 2.0 客户端支持.
- Redis 默认使用 Lettuce
测试
- 对 Spring Boot 2.0 中测试进行了一些补充和调整;
- @WebFluxTest 已添加新注释以支持 WebFlux 应用程序的“slice”测试。
- Converter 和 GenericConverter beans 现在自动扫描 @WebMvcTest 和 @WebFluxTest。
- @AutoConfigureWebTestClient 已经添加到 WebTestClient 供测试使用,这个注释会自动应用于 @WebFluxTest 测试。
- 增加了一个新的 ApplicationContextRunner 测试实用程序,可以很容易地测试你的自动配置,我们已将大部分内部测试套件移至此新模型。
新技术的引入
- 支持 HTTP/2
- 嵌入式 Netty 服务器
- Kotlin 的支持
- JOOQ 的支持
- 支持 Quartz
- 响应式编程
二、hello-world
利用IDEA工具创建springboot工程:springboot-demo
pom.xml文件添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
编写 Controller 内容创建 HelloController
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "hello world";
}
}
运行启动类:DemoApplication
浏览器访问:http://localhost:8080/hello ,页面展示 hello world 。
三、自定义filter
Spring Boot 内置了一些 Filter,
比如,处理编码的 OrderedCharacterEncodingFilter 和请求转化的 HiddenHttpMethodFilter,也支持根据我们的需求来可以自定义 Filter。
自定义 Filter 有两种实现方式:(推荐使用第二个方案)
第一种是使用 @WebFilter,
第二种是使用 FilterRegistrationBean
以第二种为例:
1、实现 Filter 接口,实现其中的 doFilter() 方法;
public class MyFilter implements Filter {
public void init(){}
public void doFilter(ServletRequest request,ServletResponse ServletResponse,FilterChain chain){}
public void destroy(){}
}
2、添加 @Configuration 注解,将自定义 Filter 加入过滤链。
@Configuration
public class WebConfiguration {
@Bean
FilterRegistrationBean filterRegistrationBean(){
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new MyFilter());
registrationBean.addUrlPatterns("/*");
registrationBean.setName("MyFilter");
//当有多个过滤器时可以通过设置 Order 属性来决定它
registrationBean.setOrder(6);
return registrationBean;
}
}
四、读取配置文件两种方式:
在 application.properties 中自定义配置:
demo.name=xxxxx
从配置文件加载单个配置内容时:
1、在注入的字段上使用注解 @Value 即可
@Value("${demo.name}")
private String name;
2、定义对象接受多个配置项
class类上使用注解 @ConfigurationProperties (prefix="demo") 列如:
@Component
@ConfigurationProperties (prefix="demo")
public class Demo{
private String name;
}
表示以 demo 开头的属性会自动赋值到对象的属性中,比如,demo.name 会自动赋值到对象属性 name 中
五、自定义配置文件:
1、在 resources 目录下创建一个 my.properties 文件
my.name=test
my.password=test
2、定义对象接受配置项
类上使用注解 @PropertySource("classpath:my.properties") 读取配置文件
@Component
@ConfigurationProperties(prefix = "my")
@PropertySource("classpath:my.properties")
public class MyProperties {
private String name;
private String password;
//省略setter getter
}
springboot笔记之helloworld的更多相关文章
- Spring MVC 学习笔记一 HelloWorld
Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...
- (一)IDEA工具开第一个springboot应用之helloworld
(一)IDEA工具开第一个springboot应用之helloworld 一.前置知识 1.maven相关知识 2.spring注解 3.RESTful API 二.idea开发第一个springbo ...
- MOOS学习笔记2——HelloWorld回调
MOOS学习笔记2--HelloWorld回调 例程 #include "MOOS/libMOOS/Comms/MOOSAsyncCommClient.h" bool OnConn ...
- MOOS学习笔记1——HelloWorld
MOOS学习笔记1--HelloWorld 例程 /* * @功能:通讯客户端的最简单程序,向MOOSDB发送名为"Greeting" * 数据"Hello", ...
- U3D学习笔记1: HelloWorld
Unity 版本: 5.3.5.f1 Hello World工程 1.新建工程 HelloWorld U3D可选2D和3D游戏 2.新建C#脚本文件 在project栏的assets目录右键-&g ...
- SpringBoot笔记十六:ElasticSearch
目录 ElasticSearch官方文档 ElasticSearch安装 ElasticSearch简介 ElasticSearch操作数据,RESTful风格 存储 检查是否存在 删除 查询 更新 ...
- SpringBoot入门(0) HelloWorld的实现与原理分析
SpringBoot(0) HelloWorld的实现与原理分析 一.环境准备 1.1 环境约束 –jdk1.8:Spring Boot 推荐jdk1.7及以上:java version “1.8.0 ...
- SpringBoot学习之Helloworld
1. 如果使用Spring开发一个"HelloWorld"的web应用 创建一个web项目并且导入相关jar包.SpringMVC Servlet 创建一个web.xml 编写一个 ...
- SpringBoot入门 (一) HelloWorld
一 什么是springboot springboot是一个全新的框架,它设计的目的简化spring项目的初始环境的搭建和开发,主要有以下几个特点: 1.简化初始配置 ,可与主流框架集成: 2.内置Se ...
随机推荐
- C# 数据测试
查询 100w条数据 39列 把100w条数据转换为匿名对象 加入到集合 所用的时间是 32 s 39列 600万条数据
- netty实现客户端服务端心跳重连
前言: 公司的加密机调度系统一直使用的是http请求调度的方式去调度,但是会出现网络故障导致某个客户端或者服务端断线的情况,导致很多请求信息以及回执信息丢失的情况,接着我们抛弃了http的方式,改为T ...
- CF1213F Unstable String Sort
题目链接 问题分析 题目实际上是一堆大于等于的约束.观察这\(2n-2\)个约束.第一组可以将要求的排成一个不降的序列,然后第二组就是在第一组的基础上再添加条件. 不妨设第一组生成的不降序列是\(\{ ...
- R_Studio(癌症)以等宽类别值、自定义类别值、等频类别值(分为5类)
对“癌症.csv”中的肾细胞癌组织内微血管数进行连续属性的离散化处理 增加“微血管数分类1”属性,取值为等宽类别值(分为5类),增加“微血管数分类2”属性,取值为自定义类别值(0~40,41~60,6 ...
- SQL查询时踩得一些坑
1.左右连接: left join:LEFT JOIN返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替. inner join: 内连接是最 ...
- IDEA配置常见配置
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- hibernate 一对多单向注解配置(实现级联操作 )
学生表关联学生的课程表(一对多) 学生表实体类: @Entity @Table(name = "JXD_COM_STUDENT") public class StudentMode ...
- LeetCode 236. 二叉树的最近公共祖先(Lowest Common Ancestor of a Binary Tree)
题目描述 给定一棵二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义: “对于有根树T的两个结点u.v,最近公共祖先表示一个结点x,满足x是u.v的祖先且x的深度尽可能大. ...
- 为EasyUI的dataGrid单元格增加鼠标移入移出事件
onLoadSuccess: function (data) { $(".datagrid-row").mouseover(function (e) { var text = $( ...
- Kettle使用教程之数据同步
数据模型原型如下: 1.表输入,针对最新的数据输入的表 2.目标表,需要更新的表 3.两个表都需要进行排序操作 4.合并,根据id进行合并 5.数据同步(包括更新.插入.删除) 6.点击运行,就可以实 ...