SpringBoot自学汇总
启动彩蛋修改:
项目resources目录下建立banner.txt文件就可替换原来的菜单
字符画生成的网站http://www.network-science.de/ascii/ http://patorjk.com/software/taag/
切换不同环境配置
在idea 启动配置program arguments加上–spring.profiles.active={profile},或在dos行加上–spring.profiles.active={profile};
或配置文件spring.profiles.active={profile}
各个环境公共的配置写在application.properties中
各个模块独有的配置配置在自己的application-{xxx}.properties文件中
程序读取的时候优先读取application.properties中选中的profile的配置,若读不到才会从application.properties去读
读取配置
必须先@Component 然后参数@Value("${cusvar}"
@Value("${app.name}")
private String cusvar ; 将${app.name}值赋予cusvar
name= HowieLi
age= 18
content= "name: ${name}, age: ${age}"
代码中直接调用content就可以了,访问启动的应用显示name: HowieLi, age: 18。
@RestController该注解是Spring4之后新加的注解,等同于@Controller和@ResponseBody的组合。
@RequestMapping(value = "/hello", method = RequestMethod.GET)== @GetMapping("/hello")
@RequestMapping(value = {"/hello", "/hi"}, method = RequestMethod.GET)访问/hello和/hi是一样的效果
@GetMapping(value = "/say/{id}")
public String helloGet(@PathVariable("id") int id, @RequestParam("name") String name) {return "id: " + id + ",name:" + name;}访问http://localhost:8080/say/5?name=howieli
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component;import lombok.Data;/*** Created by on 2017/07/01.*/@Data@Component //将Person类交由Spring容器管理 @ConfigurationProperties(prefix = "person") //填写配置文件中的前缀 public class Person {private String name;private int age; // // public String getName() { // return name; // } // public void setName(String name) { // this.name = name; // } // public int getAge() { // return age; // } // public void setAge(int age) { // this.age = age; // }@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";} }@Autowiredprivate Person person;@RequestMapping("/hellTask")public String hellTask(){logger.info("访问hellTask");return person.toString();}
获得配置文件值
Preferences -> Editor -> General -> Appearance, uncheck "Show Spring Boot metadata panel"解决Spring Boot Configuration Annotation Processor not found in classpath
Usage of API documented as @since 1.6+ This inspection finds all usages of methods that have @since tag in their documentation. This may be useful when development is performed under newer SDK version as the target platform for production解决方法
File ->Project Structure->Project Settings -> Modules -> 你的Module名字 -> Sources -> Language Level->选个默认的就行。
1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符,怎么办?
<properties>加上
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>或
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package. 因为application.java 文件不能直接放在main/java文件夹下,必须要建一个包把他放进去
热部署参看http://www.cnblogs.com/java-zhao/p/5502398.html
http://blog.csdn.net/jsshaojinjie/article/details/64125458
<!-- 用于将应用打成可直接运行的jar(该jar就是用于生产环境中的jar) 值得注意的是,如果没有引用spring-boot-starter-parent做parent, 且采用了上述的第二种方式,这里也要做出相应的改动 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork><!-- 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
</configuration>
</plugin>
<!-- devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现),实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional><!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 -->
</dependency>
CTRL + alt + s --> 查找make project automatically --> 选中
ctrl+shift+alt+/ --> 查找Registry --> 找到并勾选compiler.automake.allow.when.app.running
关闭热部署spring.devtools.restart.enabled 属性为false
System.setProperty("spring.devtools.restart.enabled","false");
public static void main(String[] args) throws IOException {
Properties properties= new Properties();
//System.out.println(System.getProperty("user.dir"));
//自己设置文件位置
//InputStream in = new FileInputStream(System.getProperty("user.dir")
//+"/isoft-manager/isoft-manager-pojo/app.properties");
//Resources位置
InputStream in=Application.class.getClassLoader().getResourceAsStream("app"
+ ".properties");
properties.load(in);
SpringApplication app=new SpringApplication(Application.class);
app.setDefaultProperties(properties);
app.run(args);
}使用自己的启动设置
使用fastjson
@Bean public HttpMessageConverters fastJsonHttpMessageConverters(){//1.需要定义一个convert转换消息的对象;FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();//2:添加fastJson的配置信息;FastJsonConfig fastJsonConfig = new FastJsonConfig();fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);//3处理中文乱码问题List<MediaType> fastMediaTypes = new ArrayList<MediaType>();fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);//4.在convert中添加配置信息.fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);HttpMessageConverter<?> converter = fastJsonHttpMessageConverter;return new HttpMessageConverters(converter);}
http://blog.csdn.net/xiaoyu411502/article/details/48049099application.properties配置说明
SpringBoot自学汇总相关推荐
- SpringBoot笔记汇总【动力节点SpringBoot全套教程完整版】
前言 动力节点的springboot笔记汇总,公开免费. Spring Boot教程 学习地址 动力节点springboot视频教程-专为springboot初学者打造的教程_哔哩哔哩_bilibil ...
- java php nodejs python旅游网站设计与开发需求分析Springboot SpringcloudVue汇总一览
1.旅游网站设计与开发 系统主要包含了用户登录 .特色产品管理.信息介绍管理.旅游分享管理.公告新闻管理.酒店管理.类别管理.友情链接管理.留言管理.轮播图管理.旅行社管理.美食管理.评论管理.收藏管 ...
- SpringBoot知识点汇总
@RestController是什么,与@Controller的区别是什么? @RestController注解相当于@ResponseBody + @Controller合在一起的作用. 1.Con ...
- 自学太慢了?不报班只白嫖行不行?又或者报个班,逼自己一把?
无论你是大学生还是在职人员,想学 Java 时,都会面临两个选择,自学或者报班.报班通常太费钱,时间又不自由:自学又不知道如何下手,担心自己坚持不下来.怎么办呢? 本文将解答你自学 Java 的 N ...
- Spring Cloud原理
>转载请标明出处: >https://www.fangzhipeng.com > 本文出自[方志朋的博客](http://blog.csdn.net/forezp) > & ...
- 拜托!面试请不要再问我 Spring Cloud 底层原理 ...
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. >出处: >https://www.fangzhipeng.com > 本文出自 ...
- 那些年让人迷惑的同步、异步、阻塞、非阻塞
本文为转载文章,原文链接:https://www.jianshu.com/p/3d603166f54d 在IT圈混饭吃,不管你用什么编程语言.从事前端还是后端,阻塞.非阻塞.异步.同步这些概念,都需要 ...
- 性能优化之道】每秒上万并发下的Spring Cloud参数优化实战
本文为转载文章,作者:中华石杉,十余年BAT架构经验,倾囊相授.作者微信公众号:石杉的架构笔记(ID:shishan100) 一.写在前面 相信不少朋友都在自己公司使用Spring Cloud框架来构 ...
- 一个故事讲清楚NIO
本文为转载文章,原文链接:http://www.cnblogs.com/LBSer/p/4622749.html 假设某银行只有10个职员.该银行的业务流程分为以下4个步骤: 1) 顾客填申请表(5分 ...
最新文章
- 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)...
- 最近公共祖先 LCA Tarjan算法
- 内存是新的硬盘,硬盘是新的磁带
- SDN(软件定义网络)
- SprintBoot开发官方指导文档
- Python继承类的方式实现多线程及控制线程数
- 高质量c/c++编程(9)
- 【C#/.NET】.NET6中全局异常处理
- Redis入门(一)之安装
- Linux给GCC编译的应用程序创建服务
- LeetCode 2200. 找出数组中的所有 K 近邻下标
- Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用【补充】
- String:字符串常量池
- 时间复杂度o(n^0.5)_算法基础1.1:算法复杂度计算(二)
- spring注解开发实例
- 下行法求最小割集案例_故障树分析方法(FTA)
- Linux 音频驱动(六) ALSA音频驱动之PCM Write数据传递过程
- 程序员需要的日常(收费)软件(都免费)
- 2019-02-13 思考:1000瓶药水,1瓶有毒,老鼠毒发24h,如何用最少的老鼠在24h内找出毒药?
- 整数n分解成素数乘积c语言,关于几种求素数的方法(C语言描述)