Springboot 学习笔记 之 Day 1
SpringBoot快速入门
1. SpringBoot简介
Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的、产品级别的应用。 
背景: 
J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。 
解决: 
Spring 全家桶  时代
Spring Boot ——> J2EE一站式解决方案 
Spring Cloud ——> 分布式整体解决方案 
优点:
快速创建独立的Spring应用程序以及与主流框架集成
直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
提供自己的’入门’POM来简化你的Maven配置(starters自动依赖与版本控制)
尽可能自动配置Spring,简化开发,也可修改默认值
提供生产就绪功能,如指标,运行状况检查和外部配置
绝对不会生成代码,并且不需要XML配置
与云计算的天然集成
学习SpringBoot之前需要熟悉Spring Framework框架,最好熟悉Spring的注解驱动开发
2. 学习springboot,用什么开发工具
传统的用eclipse需要下载sts插件
下载springboot官方推荐的开发工具,sts, 和eclipse长得差不多
用现在比较流行的IntelliJ IDEA 开发工具

一个简单的例子
创建一个项目,
pom.xml 中需要加入:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies> <!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> 新建一个HelloController
@RestController //等同于同时加上了@Controller和@ResponseBody
public class HelloController { //访问/hello或者/hi任何一个地址,都会返回一样的结果
@RequestMapping(value = {"/hello","/hi"},method = RequestMethod.GET)
public String say(){
return "hi you!!!";
}
}
起始应用,由于我创建的时候,选择spring project,起始类和pom中spring的父依赖,都是自动生成的。o(∩_∩)o
Demoday01Application
@SpringBootApplication
public class Demoday01Application { public static void main(String[] args) {
SpringApplication.run(Demoday01Application.class, args);
}
}
启动这个main函数,查看日志,可以看到端口号,根目录等信息。

打开浏览器,出现如下,服务算是成功启动起来了

测试一下,下午再来
新增POM中的测试需要的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
@RunWith(SpringRunner.class)
@SpringBootTest
public class Demoday01ApplicationTests { private MockMvc mvc; @Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
} @Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(("gogogo")));
} @Test
public void getHello02() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
} }
代码保存到了 删除了,太简单啦,不用代码
试一下配置文件
SpringBoot使用二种全局的配置文件,配置文件名是固定的:
application.properties
application.yml
配置文件的作用:修改SpringBoot自动配置的默认值
application.properties的Sample:
person.last-name=张三
person.age=18
person.birth=2018/01/01
person.boss=false
person.maps.k1=v1
person.maps.k2=v2
person.lists=a,b,c
person.dog.name=小狗
person.dog.age=2
application.yml
*.yml是YAML语法编写的配置文件
YAML简介及语法
YAML(YAML Ain’t Markup Language)
YAML A Markup Language:是一个标记语言
YAML isn't Markup Language:不是一个标记语言;
标记语言:
以前的配置文件;大多都使用的是 *.xml文件
YAML:以数据为中心,比json、xml等更适合做配置文件
YAML语法
key: value:表示一对键值对(:后必须有空格) 
YAML以空格的缩进来控制层级关系,只要左对齐的一列数据都是同一层级,同时对大小写敏感
层级关系很重要,以及: 之后要有空格
server:
  port: 8090
  error:
  path: /error
  spring:
  aop:
  auto: true
Springboot 学习笔记 之 Day 1的更多相关文章
- SpringBoot学习笔记
		
SpringBoot个人感觉比SpringMVC还要好用的一个框架,很多注解配置可以非常灵活的在代码中运用起来: springBoot学习笔记: .一.aop: 新建一个类HttpAspect,类上添 ...
 - Springboot学习笔记(六)-配置化注入
		
前言 前面写过一个Springboot学习笔记(一)-线程池的简化及使用,发现有个缺陷,打个比方,我这个线程池写在一个公用服务中,各项参数都定死了,现在有两个服务要调用它,一个服务的线程数通常很多,而 ...
 - SpringBoot学习笔记(14):使用SpringBootAdmin管理监控你的应用
		
SpringBoot学习笔记(14):使用SpringBootAdmin管理监控你的应用 Spring Boot Admin是一个管理和监控Spring Boot应用程序的应用程序.本文参考文档: 官 ...
 - SpringBoot学习笔记(3):静态资源处理
		
SpringBoot学习笔记(3):静态资源处理 在web开发中,静态资源的访问是必不可少的,如:Html.图片.js.css 等资源的访问. Spring Boot 对静态资源访问提供了很好的支持, ...
 - SpringBoot学习笔记(2):引入Spring Security
		
SpringBoot学习笔记(2):用Spring Security来保护你的应用 快速开始 本指南将引导您完成使用受Spring Security保护的资源创建简单Web应用程序的过程. 参考资料: ...
 - SpringBoot学习笔记(7):Druid使用心得
		
SpringBoot学习笔记(7):Druid使用心得 快速开始 添加依赖 <dependency> <groupId>com.alibaba</groupId> ...
 - SpringBoot学习笔记(4):与前端交互的日期格式
		
SpringBoot学习笔记(4):与前端交互的日期格式 后端模型Date字段解析String 我们从前端传回来表单的数据,当涉及时间.日期等值时,后端的模型需将其转换为对应的Date类型等. 我们可 ...
 - SpringBoot学习笔记(4):添加自定义的过滤器
		
SpringBoot:学习笔记(4)——添加自定义的过滤器 引入自定义过滤器 SpringBoot提供的前端控制器无法满足我们产品的需求时,我们需要添加自定义的过滤器. SpringBoot添加过滤器 ...
 - SpringBoot学习笔记(13):日志框架
		
SpringBoot学习笔记(13):日志框架——SL4J 快速开始 说明 SpringBoot底层选用SLF4J和LogBack日志框架. SLF4J的使用 SpringBoot的底层依赖关系 1. ...
 - SpringBoot学习笔记(12):计划任务
		
SpringBoot学习笔记(12):计划任务 计划任务 在企业的实践生产中,可能需要使用一些定时任务,如月末.季末和年末需要统计各种各样的报表,每周自动备份数据等. 在Spring中使用定时任务 1 ...
 
随机推荐
- PAT 1045 Favorite Color Stripe[dp][难]
			
1045 Favorite Color Stripe (30)(30 分) Eva is trying to make her own color stripe out of a given one. ...
 - [LeetCode] 102. Binary Tree Level Order Traversal_Medium tag: BFS
			
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
 - excel 数字转文本
			
问: 在EXCEL2003中,如何把一列数字转换成文本格式我的意思的,这一列数字全部变成带有文本格式符号(就是左上角有个绿色小三角)的那种以文本形式存储的数字.目前我只知道一个一个双击单元格,但一列数 ...
 - caffe 中base_lr、weight_decay、lr_mult、decay_mult代表什么意思?
			
在机器学习或者模式识别中,会出现overfitting,而当网络逐渐overfitting时网络权值逐渐变大,因此,为了避免出现overfitting,会给误差函数添加一个惩罚项,常用的惩罚项是所有权 ...
 - ROS知识(2)----理解ROS系统结构
			
学习新事物,方法高于技术本身,如果没有把握"BIG PICTURE"的话很难理解进去.通过以下几点进行理解ROS: ROS实际上不是操作系统,他只是一个通信的框架,一个代码管理的架 ...
 - python webdriver api-操作日期元素的方法
			
操作日期元素 第一种方式直接向输入框输入日期 dateInputBox = self.driver.find_element_by_id("datepicker") dateInp ...
 - jQuery 遍历 - eq() 方法   查找当前元素
			
jQuery 遍历 - eq() 方法 if(data[i].status !='已送达'){ $('.w-beget').eq(i).attr('disabled','disabled'); }
 - 在uboot中加入cmd_run命令,运行环境变量
			
在学习uboot的过程中会经常烧录程序,每次都要敲一些下载指令.这样是不是很麻烦,有什么办法能快速的烧写呢.很简单,将需要敲击的指令编译到uboot中,以环境变量的形式存在.但是环境变量很好加,如何运 ...
 - 穿透内网,连接动态ip,内网ip打洞-----p2p实现原理
			
转:http://blog.csdn.net/suhuaiqiang_janlay/article/details/60466333 本人找几篇讲得好的来整理一下. (1)问题的由来: (2)动态ip ...
 - .xz文件解压及linux常见压缩
			
最近下载mysql8.0的压缩包,发现压缩包的格式为xz tar czvf 或 tar xzvf 的压缩格式很好解压,使用tar命令即可,z是针对 gzip,j是针对 bzip2. 但xz的压缩文件就 ...