当前位置: 首页 > 编程日记 > 正文

SpringBoot使用笔记

其实也是参考官方的:http://spring.io/guides/gs/rest-service/ ,在官方代码基础上加入了很多实用的东西,比如运行环境启动命令等等。

官方文档:http://docs.spring.io/spring-boot/docs/current/reference/html/

SpringBoot并不神秘,其最大的好处是可以帮你省略引用一堆jar包,需要神秘jar它自动帮你引用,集成tomcat,集成配置等待好处太多,总之就是更方便开发而已

还是自己体验下比较好。

1.建立java应用程序

起一个Maven的java应用程序,注意不要再起Web应用程序了:

2.maven配置文件

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xxx</groupId><artifactId>spring-boot-hello</artifactId><version>1.0.0</version><packaging>jar</packaging><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.3.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.jayway.jsonpath</groupId><artifactId>json-path</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>


3.新建类文件

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

public class Greeting {private final long id;private final String content;public Greeting(long id, String content) {this.id = id;this.content = content;}public long getId() {return id;}public String getContent() {return content;}
}

import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class GreetingController {private static final String template = "Hello, %s!";private final AtomicLong counter = new AtomicLong();@RequestMapping("/greeting")public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {return new Greeting(counter.incrementAndGet(),String.format(template, name));}
}


4.运行项目

注意:SpringBoot已经集成了tomcat所以无需再安装了,默认是8080不要和现有的tomcat冲突

成功启动会提示:FrameworkServlet 'dispatcherServlet': initialization completed in 10 ms

5.验证

http://localhost:8080/greeting

6.集成依赖文件

我们去看下系统依赖文件,发现springmvc都自动被引入,如果不适用springboot就需要一个个去单独引用。

7.命令行下启动

实际项目中肯定是到命令行下启动

Windows下

# java -jar spring-boot-hello-1.0.0.jar

Linux下

实际是需要再后台运行的加个&符号,比如这样

# nohup java -jar spring-boot-hello-1.0.0.jar >/dev/null 2>&1 &

定制化JVM启动参数

# nohup java -Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=64m -XX:MaxPermSize=128m -jar spring-boot-hello-1.0.0.jar >/dev/null 2>&1 &

8.Tomcat下运行

其实完全没必要再到tomcat下再去运行了,如果真的还需要这样可以打war包即可。

<artifactId>spring-boot-hello</artifactId><version>1.0.0</version><packaging>jar</packaging>


改为

<artifactId>spring-boot-hello</artifactId><version>1.0.0</version><packaging>war</packaging>

需要注意的是jdk需要1.8以上版本,Tomcat需要8.0以上版本

9.Spring Boot配置

如果你需要修改配置,可以在resources文件夹下创建一个application.properties或者application.yml文件,这个文件会被发布到classpath。

比如修改默认的tomcat端口为80

application.properties

server.port: 80
server.tomcat.uri-encoding: UTF-8

application.yml

server:port: 80tomcat:uri-encoding: UTF-8

再重新运行tomcat就是80端口了:

更多配置参考:http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

另外:推荐一本书《深入实践Spring Boot》

10.spring boot多环境配置

一般会有开发环境,测试环境,正式环境,甚至于预发布环境。

配置文件不管理好,如果这个靠手工去做非常不靠谱,很容易出错。

Spring boot可以配置多个配置文件,自动切换。

application-online.properties

server.port: 80
server.tomcat.uri-encoding: UTF-8


application-test.properties

server.port: 8080
server.tomcat.uri-encoding: UTF-8


application.properties里激活需要的环境即可

spring.profiles.active=test

也可以通过命令行方式启动

将程序打包之后 通过 java -jar xx.jar --spring.profiles.active=dev的方式启动

参考:  SpringBoot学习笔记(2) Spring Boot的一些配置

SpringBoot四种读取properties文件的方式

springBoot 获取配置的方式(5种)

使用IDEA构建spring boot项目简单示例

SpringBoot之1分钟快速搭建Web项目

相关文章:

linux卸载欧朋浏览器,如何在Centos下安装opera浏览器

如何在Centos下安装opera浏览器 &#xff0c;Opera目前是Linux平台上性能最优的浏览器&#xff0c;而且Opera中国团队本身即定位于Opera的研发中心&#xff0c;主要也是负责全球Linux平台项目的开发&#xff0c;这个版本初步解决了经年来Linux上Opera中文字体显示混乱的问题。我…

1-1 分配内存资源给容器和POD

这一小节讲解如何分配内存请求和对一个容器做内存限制。一个容器被保证拥有足够的内存可以处理请求&#xff0c;但是也不允许使用超过限制的内存。 开始之前 需要拥有一个k8s集群 需要安装好一个kubectl 工具&#xff0c;并且能够与集群通信。 如果没有准备好&#xff0c;你…

Java的SPI机制

Dubbo等框架使用到必须掌握。 java.sql.Driver 是 Spi&#xff0c;com.mysql.jdbc.Driver 是 Spi 实现&#xff0c;其它的都是 Api。package org.hadoop.java;public interface IService {public String sayHello(); public String getScheme(); }package org.hadoop.java…

你不知道的对称密钥与非对称密钥

&#xff08;一&#xff09;对称加密&#xff08;Symmetric Cryptography&#xff09; 对称密钥加密&#xff0c;又称私钥加密&#xff0c;即信息的发送方和接收方用一个密钥去加密和解密数据。它的最大优势是加/解密速度快&#xff0c;适合于对大数据量进行加密&#xff0c;对…

linux sntp 代码,C语言window(linux)平台的SNTP实现

C语言实现window(linux)平台的SNTP&#xff0c;本程序功能主要是实现电脑(或者设备)时间同步。摘录部分代码&#xff1a;unsigned char liVnMode; /* LeapSecond(2bits:0), VersionNumber(3bits: 3), Mode(3bits: Client3, Server4) */unsigned char stratum; /* 时间层级 (0-1…

在typescript中导入第三方类库import报错

问题 最近开始折腾typescript&#xff0c;在使用第三方类库&#xff0c;比如最常见的lodash&#xff0c;采用常规方法导入 import * as _ from lodashvscode中报错提示lodash不是module。 原因 因为第三方类库并没有ts的声明文件&#xff0c;查阅网上资料&#xff0c;有typings…

JavaAgent 实现字节码注入

新建MyAgent项目 pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apach…

php打印中文乱码

php文档的文本格式都设置成 utf-8 格式 在代码中添加 header("content-type:text/html; charsetutf-8"); 转载于:https://www.cnblogs.com/negro-guoguo/p/5421355.html

linux孤立cpu,Linux 抛弃旧款 CPU,一下子少 50 万行代码

IT 之家4 月 3 日消息 Linux 内核维护者已经决定在即将发布的新版本中抛弃对旧款 CPU 架构的支持&#xff0c;因此 Linux 4.17 内核将减少大约 500000 行代码&#xff0c;根据 Linux 统计器&#xff0c;目前它包含大约 2030 万行代码。IT 之家报道&#xff0c;将被弃用的体系架…

CSS3 从头捋

1.border-radius 边界半径 作用&#xff1a;该属性用来实现圆角 示例1实现圆角 div {border:2px solid red;width:300px;border-radius:25px; } 示例2实现圆 div {border: 1px solid red;height: 100px;width: 100px;border-radius: 50%; } 示例3 不规则圆 div {border: 1px s…

算法:详解布隆过滤器的原理、使用场景和注意事项@知乎.Young Chen

算法&#xff1a;详解布隆过滤器的原理、使用场景和注意事项知乎.Young Chen 什么是布隆过滤器 本质上布隆过滤器是一种数据结构&#xff0c;比较巧妙的概率型数据结构&#xff08;probabilistic data structure&#xff09;&#xff0c;特点是高效地插入和查询&#xff0c;可…

linux shell显示下载进度,shell脚本测试下载速度

在linux下用shell来测试下载速度&#xff0c;很实用的shell代码。代码&#xff1a;复制代码 代码示例:#!/bin/bash#date:20140210# edit: www.jquerycn.cn#used for test server download speedr_host"188.18.28.19"r_dir"/home/test0208/tmp"r_file"…

openStack调试

openStack调试 posted on 2016-04-23 22:07 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/ruiy/p/5425823.html

快应用开发常见问题以及解决方案【持续更新】

接触快应用也有一段时间了&#xff0c;踩过了大大小小的坑&#xff0c;让我活到了今天。准备在此立贴持续更新&#xff0c;记录遇到的问题以及解决方案&#xff0c;造福大众。css 方面 1、文字竖排不支持 目前官方还不支持writing-mode&#xff0c;除了等待官方支持这个api以外…

Java字节码研究

关于怎么查看字节码的五种方法参考本人另一篇文章《Java以及IDEA下查看字节码的五种方法》 1.String和常连池 先上代码&#xff1a; public class TestApp {public static void main(String[] args) {String s1 "abc";String s2 new String("abc");St…

在c语言中逗号的作用,关于c语言中的逗号运算符???

等下。。答错了。。还需要理解一下神马是逗号表达式。。我前面说的和uuyyhhjj与delta_charlie的意思一样&#xff0c;但其实我们都搞错了。你可以自己把我们的例子都运行一下&#xff0c;看看是不是这样。下面我感觉应该是我正确的理解。逗号表达式是所有运算符中优先级最低的&…

2018-2019-1 20165206 《信息安全系统设计基础》第4周学习总结

- 2018-2019-1 20165206 《信息安全系统设计基础》第4周学习总结 - 教材学习内容总结 程序员可见的状态&#xff1a;Y86-64程序中的每条指令都会读取或修改处理器状态的某些部分&#xff0c;这称为程序员可见状态。包括&#xff1a;程序寄存器、条件码、程序状态、程序计数器和…

PHP——图片上传

图片上传 Index.php文件代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </head> <body><form action"upload2.php" method"p…

IDEA实用插件和技巧

《解决lambda expressions are not supported at this language level的问题》 《Intellij Idea 代码格式化/保存时自动格式化》 一、安装google-java-format preferences -> plugins -> Browse repositories… 搜索google-java-format 还有阿里的代码规范插件也不…

c语言将字母与数字分开存放,2017年计算机二级《C语言》考前提分试题及答案9...

二、程序填空题(共18分)、下列给定程序中&#xff0c;函数flm的功能是&#xff1a;将s所指字符串中的所有数字字符移到所有非数字字符之后&#xff0c;并保持数字字符串和非数字字符串原有的次序。例如&#xff0c;s所指的字符串为“def35adh3kjsdt7”&#xff0c;执行后结果为…

学术青年如何克服拖延症——5条技巧助你前进

雷锋网 AI 科技评论按&#xff1a;「我准备好了就开始」&#xff08;或者说「拖延症」&#xff09;&#xff0c;以及「即便动起手来也觉得举步维艰」大概是每个现代人都逃不过的日常感受&#xff0c;不管是学习、在企业中工作&#xff0c;还是从事学术研究。我们可能都看过许多…

JDK源码研究Jstack,JMap,threaddump,dumpheap的原理

JDK最新bug和任务领取&#xff1a;https://bugs.openjdk.java.net/projects/JDK/issues 参加OpenJDK社区&#xff1a;https://bugs.openjdk.java.net/projects/JDK/issues openjdk源码地址&#xff1a; https://jdk.java.net/java-se-ri/8 https://download.java.net/openj…

C语言中regex_error,为什么这个C 11 std :: regex示例抛出一个regex_error异常?

参见英文答案 >Is gcc 4.8 or earlier buggy about regular expressions? 2尝试学习如何在C 11中使用新的std :: regex.但是我尝试的例子是抛出一个我不明白的regex_error异常.这是我的示例代码&#xff1a;#include #include int main…

如何删除mac通用二进制文件

通用二进制文件是什么&#xff1f; 计算机文件基本上分为二种&#xff1a;二进制文件和 ASCII&#xff08;也称纯文本文件&#xff09;&#xff0c;图形文件及文字处理程序等计算机程序都属于二进制文件。这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序…

约瑟夫环 猴子选大王

<? /*** 猴子选大王&#xff1a;一群猴子排成一圈&#xff0c;按1,2,…,n依次编号。* 然后从第1只开始数&#xff0c;数到第m只,把它踢出圈&#xff0c;从它后面再开始数&#xff0c;再数到第m只&#xff0c;在把它踢出去…&#xff0c;* 如此不停的进行下去&#xff0c;直…

Java使用字节码和汇编语言同步分析volatile,synchronized的底层实现

关于怎么查看字节码的五种方法参考本人另一篇文章《Java以及IDEA下查看字节码的五种方法》 查看汇编语言汇编码 说要看汇编还是很有必要的&#xff0c;因为有些地方比如加锁其实还是通过汇编实现的&#xff0c;只看字节码不能看出底层实现。 其实就是利用使用hsdis与jitwat…

云计算读书笔记(五)

Hadoop&#xff1a;Google云计算的开源实现 Hadoop是Apache开源组织的一个分布式计算机框架&#xff0c;可以在大量廉价的硬件设备组成的集群上运行应用程序&#xff0c;为应用程序提供一组稳定可靠的接口&#xff0c;旨在构建一个具有高可靠性和良好扩展性的分布式系统。 Hado…

自动跟随小车c语言,基于OpenCV的智能小车运动轨迹跟踪方法研究

摘要&#xff1a;随着人工智能技术的快速发展,智能小车开发受到越来越多研究者的关注,也已经成为一个重要的研究方向,而解决智能小车在路径规划中行驶的运动故障重要手段是对其进行的视频监控,但是智能小车的视频监控只能看到智能小车的行进状况而不进行相对应的处理,所以对智能…

JXJJOI2018_T1_market

题目描述 某天Lemon去超市买柠檬&#xff0c;他发现货架上有N个柠檬&#xff0c;每个柠檬都有一个重量Wi和价格Ci。 Lemon身上只带了S元钱&#xff0c;因此他想要买一个价格不超过S的柠檬回家&#xff0c;另外&#xff0c;他希望他买的那个柠檬的性价比尽量高。 性价比的定义是…