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/> &lt;!&ndash; lookup parent from repository 常用版本1.5.10.RELEASE&ndash;&gt;
</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注解。

 @GetMapping

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的更多相关文章

  1. springboot读取自己定义的配置文件的方式以及使用joda_time来处理时间日期

    总的来说呢,有两种方式,一种是原始的方式,即使用PropertiesUtils来读取配置文件. 第二种就是使用springboot的注解的方式来读取配置文件. 1.原始方式处理属性和时间日期: 工具类 ...

  2. SpringBoot 框架整合

    代码地址如下:http://www.demodashi.com/demo/12522.html 一.主要思路 使用spring-boot-starter-jdbc集成Mybatis框架 通过sprin ...

  3. 从头开始搭建一个Spring boot+ActiveMQ高可用分布式环境

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  4. Spring Boot 学习笔记1——初体验之3分钟启动你的Web应用[z]

    前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文 ...

  5. Spring Boot 学习笔记1---初体验之3分钟启动你的Web应用

    前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文 ...

  6. springboot 快速开发的定制补充

    增强 SpringBoot 快速开发工具 项目地址:https://gitee.com/sanri/web-ui 优点:这是一个 web 通用配置的组件,即插即用,可用于新项目或私活.是对 Sprin ...

  7. springboot项目抓数据后优化配置及四个补充

    昨天搞了一个抓取某某平台信息的抓取功能,其中有一个地址url,昨天是写死的,之前也进行配置过,印象有些模糊,今天想配置一下,在properties文件中,由此引发了下面的一系列总结操作: 1.原始模式 ...

  8. SpringBoot系列: Spring MVC视图方法的补充

    SpringMVC 视图方法的参数, 已经在这个文章中写得非常清楚了, 链接为 https://www.cnblogs.com/morethink/p/8028664.html 这篇文章做一些补充. ...

  9. springboot知识点补充(一)

    测试配置 @RunWith(SpringRunner.class) @SpringBootTest @Configuration @ActiveProfiles("test") p ...

  10. IntelliJ IDEA 2017版 SpringBoot的web项目补充

    一.注解        @SpringBootApplication:Spring Boot项目的核心注解,主要目的是开启自动配置.        @Configuration:这是一个配置Sprin ...

随机推荐

  1. LG1840 Color the Axis 线段树

    菜的人就要写简单题 为了练习手速来写这样一道 珂朵莉树 线段树简单题 没啥可说的,注意修改操作中要判一下 val=0 #include<bits/stdc++.h> using names ...

  2. C++教程详解

    第一篇:基础篇 简介.环境配置.基本语法.注释.数据类型.变量类型.变量作用域.常量.修饰符类型. 存储类.运算符.循环.判断.函数.数字.数组.字符串.指针.引用.日期&时间. 基本的输入输 ...

  3. __module__和__class__

    目录 一.__module__ 二.__class__ # lib/aa.py class C: def __init__(self): self.name = 'SB' # index.py fro ...

  4. 阿里Nacos-配置-多环境

    多环境的配置隔离是配置中心最基础的一个功能之一.不同的环境配置的值不一样,比如数据库的信息,业务的配置等. Spring Boot 多环境配置 首先我们来回顾下在Spring Boot中用配置文件的方 ...

  5. Zookeeper中Watcher监听实现增删改

    8.1 连接方法 package com.zookeeper.day01; import org.apache.zookeeper.*; import java.io.IOException; pub ...

  6. SpringMVC方法的返回值类型和自动装配

    1. void类型作为返回值类型 /** * 如果方法写成了void就跟原来servlet含义是差不多 的 * json */ @RequestMapping("/firstRequest& ...

  7. Windows安装与配置—MongoDB

    1,下载安装 打开下载链接:http://dl.mongodb.org/dl/win32/x86_64,选择后缀是2008plus-ssl-3.6.15.zip的版本,32位和64位通用. 2,安装配 ...

  8. H3C DRNI学习

    DRNI:Distributed Resilient Network Interconnect,分布式弹性网络互连.DR:分布式聚合接口IPP:内部控制链路端口IPL:内部控制链路DRCP报文:分布式 ...

  9. linux服务器上配置进行kaggle比赛的深度学习tensorflow keras环境详细教程

    本文首发于个人博客https://kezunlin.me/post/6b505d27/,欢迎阅读最新内容! full guide tutorial to install and configure d ...

  10. Java设计模式:Flyweight(享元)模式

    概念定义 享元(Flyweight)模式运用共享技术高效地支持大量细粒度对象的复用. 当系统中存在大量相似或相同的对象时,有可能会造成内存溢出等问题.享元模式尝试重用现有的同类对象,如果未找到匹配的对 ...