补充: SpringBoot
SpringBoot
1. Spring Boot 约定大于配置
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
有了springboot 我们就可以…
①内嵌Tomcat,不再需要外部的Tomcat;② 不再需要那些千篇一律,繁琐的xml文件。(ssm嵌套了maven,打war包嵌套到Tomcat中,Tomcat启动war包就启动就可以被访问到了;springboot打jar包,jar包里边有一个Tomcat,主函数启动了,Tomcat就启动了即web工程启动了;各种xml配置文件,都可以在一个配置文件中配置)
③更方便的和各个第三方工具(mysql,redis,elasticsearch,dubbo等等整合),而只需要维护一个配置文件即可。
Spring Boot和SSM的关系:

springboot整合了springmvc ,spring等核心功能。也就是说本质上实现功能的还是原有的spring ,springmvc的包,但是springboot单独包装了一层,这样用户就不必直接对springmvc, spring等,在xml中配置。
没有xml文件,只需要维护application.properties这样一个配置文件即可(与mysql,redis,elasticsearch,dubbo等配置文件的整合);
1 springboot实际上就是把以前需要用户手工配置的部分,全部作为默认项。除非用户需要额外更改不然不用配置。这就是所谓的:“约定大于配置”;
2 如果需要特别配置的时候,去修改application.properties
2. 快速搭建模块
新建一个project,然后在project下增加一个Module,选择Spring Initializr

目前企业中普遍选择1.5.x,不推荐选择2.x.x:
选择这个模块所需要的第三方工具,如Web-web(Tomcat就在这里边)、message--kafka
如果还需要添加其他的工具,在创建的时候忘记添加了,它本质上就是为我们创建的pom文件;再添加其他工具时可直接添加到pom文件中即可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
但是springboot它的版本号在
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.20.RELEASE</version>
<relativePath/> <!– lookup parent from repository 常用版本1.5.10.RELEASE–>
</parent>


@Controller
public class Demo1Controller {
@ResponseBody
@RequestMapping("testDemo")
public String testDemo(){
return "hello demo";
}
}
用main方法启动的tomcat,如下图所示
用浏览器访问测试:localhost:8080/testDemo 端口号的修改:
在 resources目录下的application.properties 加入
server.port=80
在程序中直接找到XXXXXApplication这个类启动它,这个类只有一个main函数 ,直接执行就启动tomcat了;
还会自动生成一个配置文件叫:resources/ application.properties(约定 >配置, 比如server. 都是tomcat的一些配置;redis. ,kafka. 等一些配置)


然后就可以开始写web工程了:controller 控制工程
LoggerController一定要在GmallLoggerApplication主函数的下面,不然扫描不到(扫描同目录同级之下的类);
3. SpringBoot的注解
@RestController
A convenience annotation that is itself annotated with @Controller and @ResponseBody.
意思是:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
1) 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver则不起作用,返回的内容就是Return 里的内容(String/JSON)。
例如:本来应该到success.jsp页面的,则其显示success.
2) 如果使用@RestController注解Controller,需要返回到指定页面,则需要配置视图解析器InternalResourceViewResolver,可以利用ModelAndView返回试图。
3) 如果使用@Controller注解Controller,如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
Spring4.3中引进了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping} 来帮助简化常用的HTTP方法的映射 并更好地表达被注解方法的语义
该注解将HTTP Get 映射到 特定的处理方法上
@GetMapping是一个组合注解 是@RequestMapping(method = RequestMethod.GET)的缩写
@PostMapping是一个组合注解 是@RequestMapping(method = RequestMethod.POST)的缩写
在日志服务器进行分流
springboot 整合kafka:
gmall-logger工程中的pom.xml加入
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>1.3..RELEASE</version>
</dependency>
application.properties配置文件中:
#============== kafka ===================
# 指定kafka 代理地址,可以多个
spring.kafka.bootstrap-servers=hadoop101:
# 指定消息key和消息体的编解码方式
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
使用log4j.properties文件打印 或 存储log日志文件;
补充: SpringBoot的更多相关文章
- springboot读取自己定义的配置文件的方式以及使用joda_time来处理时间日期
总的来说呢,有两种方式,一种是原始的方式,即使用PropertiesUtils来读取配置文件. 第二种就是使用springboot的注解的方式来读取配置文件. 1.原始方式处理属性和时间日期: 工具类 ...
- SpringBoot 框架整合
代码地址如下:http://www.demodashi.com/demo/12522.html 一.主要思路 使用spring-boot-starter-jdbc集成Mybatis框架 通过sprin ...
- 从头开始搭建一个Spring boot+ActiveMQ高可用分布式环境
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Spring Boot 学习笔记1——初体验之3分钟启动你的Web应用[z]
前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文 ...
- Spring Boot 学习笔记1---初体验之3分钟启动你的Web应用
前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文 ...
- springboot 快速开发的定制补充
增强 SpringBoot 快速开发工具 项目地址:https://gitee.com/sanri/web-ui 优点:这是一个 web 通用配置的组件,即插即用,可用于新项目或私活.是对 Sprin ...
- springboot项目抓数据后优化配置及四个补充
昨天搞了一个抓取某某平台信息的抓取功能,其中有一个地址url,昨天是写死的,之前也进行配置过,印象有些模糊,今天想配置一下,在properties文件中,由此引发了下面的一系列总结操作: 1.原始模式 ...
- SpringBoot系列: Spring MVC视图方法的补充
SpringMVC 视图方法的参数, 已经在这个文章中写得非常清楚了, 链接为 https://www.cnblogs.com/morethink/p/8028664.html 这篇文章做一些补充. ...
- springboot知识点补充(一)
测试配置 @RunWith(SpringRunner.class) @SpringBootTest @Configuration @ActiveProfiles("test") p ...
- IntelliJ IDEA 2017版 SpringBoot的web项目补充
一.注解 @SpringBootApplication:Spring Boot项目的核心注解,主要目的是开启自动配置. @Configuration:这是一个配置Sprin ...
随机推荐
- 史上最全的各种C++ STL容器全解析
史上最全的C++ STL 容器大礼包 为什么\(C++\)比\(C\)更受人欢迎呢?除了\(C++\) 的编译令人感到更舒适,\(C++\)的标准模板库(\(STL\))也占了很重要的原因.当你还在用 ...
- LG1344 「USACO4.4」Pollutant Control 最小割
问题描述 LG1344 题解 我太菜了,我一开始竟然没有看出这是个最小割裸题... 两个询问. 第一个询问,直接跑最小割就好了. 第二个询问,建图的时候边权建 \(1\) ,代表割掉这条边需要 \(1 ...
- C# params 可变参数使用注意
今天在一个 .NET Core 项目中调用一个自己实现的使用 params 可变参数的方法时触发了 null 引用异常,原以为是方法中没有对参数进行 null 值检查引起的,于是加上 check nu ...
- Matplotlib绘图及动画总结
目录 Matplotlib绘图总结 绘图原理 block模式(python默认) interactive模式(ipython模式默认) 深入子图 子图表示 子图绘图 绘制动画 参考链接 Matplot ...
- 解决centos下tomcat启动太慢 & JDBC连接oracle太慢的问题
近期遇到一个非常奇怪的问题,也不知道改了什么,tomcat启动非常慢,以前几秒就启动好了,现在要30秒左右. 而且,通过jdbc连接oracle数据库也非常慢,以前建立一个连接只要几十毫秒,现在也要1 ...
- 害死人不偿命的(3n+1)猜想-PTA
卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍下去,最后一定在某一步得到 n=1.卡拉兹在 1950 ...
- pandas 学习 第6篇:DataFrame - 数据处理(长宽格式、透视表)
长宽格式的转换 宽格式是指:一列或多列作为标识变量(id_vars),其他变量作为度量变量(value_vars),直观上看,这种格式的数据比较宽,举个列子,列名是:id1.id2.var1.var2 ...
- python基础(7):基本数据类型二(list、tuple)、range
1. 列表 1.1 列表的介绍 列表是python的基础数据类型之⼀,其他编程语⾔也有类似的数据类型.比如JS中的数组, java中的数组等等.它是以[ ]括起来,每个元素⽤','隔开⽽且可以存放各种 ...
- Java日期时间API系列3-----Jdk7及以前的日期时间类的不方便使用问题
使用Java日期时间类,每个人都很熟悉每个项目中必不可少的工具类就是dateutil,包含各种日期计算,格式化等处理,而且常常会遇到找不到可用的处理方法,需要自己新增方法,处理过程很复杂. 1.Dat ...
- JS实现深浅拷贝
1.实现浅拷贝 // 1. ...实现 let copy1 = {...{x:1}} // 2. Object.assign实现 let copy2 = Object.assign({}, {x:1} ...