一、SpringBoot Starter讲解

简介:介绍什么是SpringBoot Starter和主要作用

1、官网地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-starter

2、starter主要简化依赖用的

spring-boot-starter-web  ->里面包含多种依赖

3、几个常用的starter

spring-boot-starter-activemq

spring-boot-starter-aop

spring-boot-starter-data-redis

spring-boot-starter-freemarker

spring-boot-starter-thymeleaf

spring-boot-starter-webflux

二、SpringBoot2.x常见模板引擎讲解和官方推荐使用

简介:介绍常用的SpringBoot2.x模板引擎和官方推荐案例

1、JSP(后端渲染,消耗性能)

Java Server Pages 动态网页技术,由应用服务器中的JSP引擎来编译和执行,再将生成的整个页面返回给客户端

可以写java代码

持表达式语言(el、jstl)

内建函数

JSP->Servlet(占用JVM内存)permSize

javaweb官方推荐

springboot不推荐 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-jsp-limitations

2、Freemarker

FreeMarker Template Language(FTL)  文件一般保存为 xxx.ftl

严格依赖MVC模式,不依赖Servlet容器(不占用JVM内存)

内建函数

3、Thymeleaf (主推)

轻量级的模板引擎(负责逻辑业务的不推荐,解析DOM或者XML会占用多的内存)

可以直接在浏览器中打开且正确显示模板页面

直接是html结尾,直接编辑

xdlcass.net/user/userinfo.html

社会工程学

伪装

三、SpringBoot整合模板引擎freemarker实战

简介:SpringBoot2.x整合模板引擎freemarker实战

1、Freemarker相关maven依赖

<!-- 引入freemarker模板引擎的依赖 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-freemarker</artifactId>

</dependency>

2、Freemarker基础配置

# 是否开启thymeleaf缓存,本地为false,生产建议为true

spring.freemarker.cache=false

spring.freemarker.charset=UTF-8

spring.freemarker.allow-request-override=false

spring.freemarker.check-template-location=true

#类型

spring.freemarker.content-type=text/html

spring.freemarker.expose-request-attributes=true

spring.freemarker.expose-session-attributes=true

#文件后缀

spring.freemarker.suffix=.ftl

#路径

spring.freemarker.template-loader-path=classpath:/templates/

3、建立文件夹

1)src/main/resources/templates/fm/user/

2)建立一个index.ftl

3)user文件夹下面建立一个user.html

4、简单测试代码编写和访问

四、SpringBoot2整合模板引擎thymeleaf实战

讲解:SpringBoot2.x整合模板引擎thymeleaf实战

官网地址:https://www.thymeleaf.org/doc/articles/thymeleaf3migration.html

1、thymeleaf相关maven依赖

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

2、thymeleaf基础配置

#开发时关闭缓存,不然没法看到实时页面

spring.thymeleaf.cache=false

spring.thymeleaf.mode=HTML5

#前缀

spring.thymeleaf.prefix=classpath:/templates/

#编码

spring.thymeleaf.encoding=UTF-8

#类型

spring.thymeleaf.content-type=text/html

#名称的后缀

spring.thymeleaf.suffix=.html

3、建立文件夹

1)src/main/resources/templates/tl/

2)建立一个index.html

4、简单测试代码编写和访问

注意:$表达式只能写在th标签内部

快速入门:https://www.thymeleaf.org/doc/articles/standarddialect5minutes.html

五、SpringBoot2.x持久化数据方式介绍

简介:介绍近几年常用的访问数据库的方式和优缺点

1、原始java访问数据库

开发流程麻烦

1、注册驱动/加载驱动

Class.forName("com.mysql.jdbc.Driver")

2、建立连接

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname","root","root");

3、创建Statement

4、执行SQL语句

5、处理结果集

6、关闭连接,释放资源

2、apache dbutils框架

比上一步简单点

官网:https://commons.apache.org/proper/commons-dbutils/

3、jpa框架

spring-data-jpa

jpa在复杂查询的时候性能不是很好

4、Hiberante   解释:ORM:对象关系映射Object Relational Mapping

企业大都喜欢使用hibernate

5、Mybatis框架

互联网行业通常使用mybatis

不提供对象和关系模型的直接映射,半ORM

六、SpringBoot2.x整合Mybatis3.x注解实战

简介:SpringBoot2.x整合Mybatis3.x注解配置实战

1、使用starter, maven仓库地址:http://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter

2、加入依赖(可以用 http://start.spring.io/ 下载)

<!-- 引入starter-->

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.2</version>

<scope>runtime</scope>

</dependency>

<!-- MySQL的JDBC驱动包      -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<scope>runtime</scope>

</dependency>

<!-- 引入第三方数据源 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.1.6</version>

</dependency>

3、加入配置文件

#mybatis.type-aliases-package=net.xdclass.base_project.domain

#可以自动识别

#spring.datasource.driver-class-name =com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/movie?useUnicode=true&characterEncoding=utf-8

spring.datasource.username =root

spring.datasource.password =password

#如果不使用默认的数据源 (com.zaxxer.hikari.HikariDataSource)

spring.datasource.type =com.alibaba.druid.pool.DruidDataSource

加载配置,注入到sqlSessionFactory等都是springBoot帮我们完成

4、启动类增加mapper扫描

@MapperScan("net.xdclass.base_project.mapper")

技巧:保存对象,获取数据库自增id

@Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")

4、开发mapper

参考语法 http://www.mybatis.org/mybatis-3/zh/java-api.html

5、sql脚本

CREATE TABLE `user` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(128) DEFAULT NULL COMMENT '名称',

`phone` varchar(16) DEFAULT NULL COMMENT '用户手机号',

`create_time` datetime DEFAULT NULL COMMENT '创建时间',

`age` int(4) DEFAULT NULL COMMENT '年龄',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;

相关资料:

http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/#Configuration

https://github.com/mybatis/spring-boot-starter/tree/master/mybatis-spring-boot-samples

整合问题集合:

https://my.oschina.net/hxflar1314520/blog/1800035

https://blog.csdn.net/tingxuetage/article/details/80179772

七、SpringBoot整合Mybatis实操和打印SQL语句

讲解:SpringBoot2.x整合Mybatis3.x增删改查实操, 控制台打印sql语句

1、控制台打印sql语句

#增加打印sql语句,一般用于本地开发测试

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

2、增加mapper代码

@Select("SELECT * FROM user")

@Results({

@Result(column = "create_time",property = "createTime")  //javaType = java.util.Date.class

})

List<User> getAll();

@Select("SELECT * FROM user WHERE id = #{id}")

@Results({

@Result(column = "create_time",property = "createTime")

})

User findById(Long id);

@Update("UPDATE user SET name=#{name} WHERE id =#{id}")

void update(User user);

@Delete("DELETE FROM user WHERE id =#{userId}")

void delete(Long userId);

3、增加API

@GetMapping("find_all")

public Object findAll(){

return JsonData.buildSuccess(userMapper.getAll());

}

@GetMapping("find_by_Id")

public Object findById(long id){

return JsonData.buildSuccess(userMapper.findById(id));

}

@GetMapping("del_by_id")

public Object delById(long id){

userMapper.delete(id);

return JsonData.buildSuccess();

}

@GetMapping("update")

public Object update(String name,int id){

User user = new User();

user.setName(name);

user.setId(id);

userMapper.update(user);

return JsonData.buildSuccess();

}

八、事务介绍和常见的隔离级别,传播行为

简介:讲解什么是数据库事务,常见的隔离级别和传播行为

1、介绍什么是事务,单机事务,分布式事务处理等

2、讲解场景的隔离级别

Serializable: 最严格,串行处理,消耗资源大

Repeatable Read:保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据

Read Committed:大多数主流数据库的默认事务等级

Read Uncommitted:保证了读取过程中不会读取到非法数据。

3、讲解常见的传播行为

PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务,最常见的选择。

PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起, 两个事务之间没有关系,一个异常,一个提交,不会同时回滚

PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常

九、SpringBoot整合mybatis之事务处理实战

简介:SpringBoot整合Mybatis之事务处理实战

1、service逻辑引入事务 @Transantional(propagation=Propagation.REQUIRED)

2、service代码

@Override

@Transactional

public int addAccount() {

User user = new User();

user.setAge(9);

user.setCreateTime(new Date());

user.setName("事务测试");

user.setPhone("000121212");

userMapper.insert(user);

int a = 1/0;

return user.getId();

}

十、源码编译安装Redis4.x

简介:使用源码安装Redis4.x和配置外网访问

1、快速安装  https://redis.io/download#installation

wget http://download.redis.io/releases/redis-4.0.9.tar.gz

tar xzf redis-4.0.9.tar.gz

cd redis-4.0.9

make

启动服务端:src/redis-server

启动客户端:src/redis-cli

2、默认是本地访问的,需要开放外网访问

1)打开redis.conf文件在NETWORK部分修改

注释掉bind 127.0.0.1可以使所有的ip访问redis

修改 protected-mode,值改为no

十一、SpringBoot2.x整合redis实战讲解

简介:使用springboot-starter整合reids实战

1、官网:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-redis

集群文档:https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#cluster

2、springboot整合redis相关依赖引入

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

3、相关配置文件配置

#=========redis基础配置=========

spring.redis.database=0

spring.redis.host=127.0.0.1

spring.redis.port=6390

# 连接超时时间 单位 ms(毫秒)

spring.redis.timeout=3000

#=========redis线程池设置=========

# 连接池中的最大空闲连接,默认值也是8。

spring.redis.pool.max-idle=200

#连接池中的最小空闲连接,默认值也是0。

spring.redis.pool.min-idle=200

# 如果赋值为-1,则表示不限制;pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。

spring.redis.pool.max-active=2000

# 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时

spring.redis.pool.max-wait=1000

4、常见redistemplate种类讲解和缓存实操(使用自动注入)

1、注入模板

@Autowired

private StirngRedisTemplate strTplRedis

2、类型String,List,Hash,Set,ZSet

对应的方法分别是opsForValue()、opsForList()、opsForHash()、opsForSet()、opsForZSet()

十二、SpringBoot定时任务schedule讲解

简介:讲解什么是定时任务和常见定时任务区别

1、常见定时任务 Java自带的java.util.Timer类

timer:配置比较麻烦,时间延后问题

timertask:不推荐

2、Quartz框架

配置更简单

xml或者注解

3、SpringBoot使用注解方式开启定时任务

1)启动类里面 @EnableScheduling开启定时任务,自动扫描

2)定时任务业务类 加注解 @Component被容器扫描

3)定时执行的方法加上注解 @Scheduled(fixedRate=2000) 定期执行一次

十三、SpringBoot常用定时任务配置实战

简介:SpringBoot常用定时任务表达式配置和在线生成器

1、cron 定时任务表达式 @Scheduled(cron="*/1 * * * * *") 表示每秒

1)crontab 工具  https://tool.lu/crontab/

2、fixedRate: 定时多久执行一次(上一次开始执行时间点后xx秒再次执行;)

3、fixedDelay: 上一次执行结束时间点后xx秒再次执行

4、fixedDelayString:  字符串形式,可以通过配置文件指定

十四、SpringBoot2.x异步任务实战(核心知识)

简介:讲解什么是异步任务,和使用SpringBoot2.x开发异步任务实战

1、什么是异步任务和使用场景:适用于处理log、发送邮件、短信……等

下单接口->查库存 100

余额校验 150

风控用户100

....

2、启动类里面使用@EnableAsync注解开启功能,自动扫描

3、定义异步任务类并使用@Component标记组件被容器扫描,异步方法加上@Async

注意点:

1)要把异步任务封装到类里面,不能直接写到Controller

2)增加Future<String> 返回结果 AsyncResult<String>("task执行完成");

3)如果需要拿到结果 需要判断全部的 task.isDone()

4、通过注入方式,注入到controller里面,如果测试前后区别则改为同步则把Async注释掉

十五、新日志框架LogBack介绍

简介:日志介绍和新日志框架Logback讲解

1.常用处理java的日志组件 slf4j,log4j,logback,common-logging 等

2、logback介绍:基于Log4j基础上大量改良,不能单独使用,推荐配合日志框架SLF4J来使用

logback当前分成三个模块:logback-core,logback-classic和logback-access;

logback-core是其它两个模块的基础模块

3、Logback的核心对象:

Logger:日志记录器

Appender:指定日志输出的目的地,目的地可以是控制台,文件

Layout:日志布局 格式化日志信息的输出

4、日志级别:DEBUG < INFO < WARN < ERROR

===========log4j示例===========

### 设置###

log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target = System.out

log4j.appender.stdout.layout = org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=D://logs/error.log ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = D://logs/log.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = DEBUG

log4j.appender.D.layout = org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=D://logs/error.log ###

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender

log4j.appender.E.File =E://logs/error.log

log4j.appender.E.Append = true

log4j.appender.E.Threshold = ERROR

log4j.appender.E.layout = org.apache.log4j.PatternLayout

log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

===========logback============

4、Log4j日志转换为logback在线工具(支持log4j.properties转换为logback.xml,不支持 log4j.xml转换为logback.xml)

https://logback.qos.ch/translator/

十六、SpringBoot2.x日志讲解和Logback配置实战

简介:讲解SpringBoot2.x整合Logback配置实战

1、官网介绍:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-logging

各个组件案例:https://logback.qos.ch/manual/index.html

2、分析SpringBoot启动日志

1)默认情况下,Spring Boot将日志输出到控制台

3、整合Logback实战

1)创建 日志文件logback-spring.xml,官方推荐 -spring.xml结尾

默认加载加载配置顺序 logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy

注释:

<configuration> 子节点

<appender></appender>

<logger></logger>

<root></root>(要加在最后)

十七、搜索知识和搜索框架elasticsearch介绍

简介:通过京东电商 介绍什么是搜索引擎,和开源搜索框架ElasticSearch6.x新特性介绍

前言:介绍ES的主要特点和使用场景,新特性讲解

mysql:like 模糊,性能问题,

solr:针对企业,Lucene

elasticsearch:针对数据量特别大,PB,TB

纯java开发,springboot使用,5.6版本

es升级4->5版本,改动大,但是5版本后,改动不大

elasticSearch主要特点

1、特点:全文检索,结构化检索,数据统计、分析,接近实时处理,分布式搜索(可部署数百台服务器),处理PB级别的数据

搜索纠错,自动完成

2、使用场景:日志搜索,数据聚合,数据监控,报表统计分析

3、国内外使用者:维基百科,Stack Overflow,GitHub

新特性讲解

1、6.2.x版本基于Lucene 7.x,更快,性能进一步提升,对应的序列化组件,升级到Jackson 2.8

mysql:database   table   rocord

es   : index     type(只能存在一个)    document

2、推荐使用5.0版本推出的Java REST/HTTP客户端,依赖少,比Transport使用更方便,在基准测试中,性能并不输于Transport客户端,

在5.0到6.0版本中,每次有对应的API更新, 文档中也说明,推荐使用这种方式进行开发使用,所有可用节点间的负载均衡

在节点故障和特定响应代码的情况下进行故障转移,失败的连接处罚(失败的节点是否重试取决于失败的连续次数;失败的失败次数越多,客户端在再次尝试同一节点之前等待的时间越长)

3、(重要)不再支持一个索引库里面多个type,6.x版本已经禁止一个index里面多个type,所以一个index索引库只能存在1个type

官方文档:

1、6.0更新特性

https://www.elastic.co/guide/en/elasticsearch/reference/6.0/release-notes-6.0.0.html#breaking-java-6.0.0

2、6.1更新特性

https://www.elastic.co/guide/en/elasticsearch/reference/6.1/release-notes-6.1.0.html

十八、快速部署ElastcSearch5.6.x

简介:讲解为什么不用ES6.x版本,及本地快速安装ElasticSeach和场景问题处理

配置JDK1.8

使用wget 下载elasticsearch安装包

wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.tar.gz

解压

tar -zxvf elasticsearch-5.6.8.tar.gz

官网:https://www.elastic.co/products/elasticsearch

外网访问配置:

config目录下面elasticsearch.yml

修改为 network.host: 0.0.0.0

配置es出现相关问题处理(阿里云、腾讯云,亚马逊云安装问题集合):

1、问题一

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)

#

# There is insufficient memory for the Java Runtime Environment to continue.

# Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.

# An error report file with more information is saved as:

# /usr/local/software/temp/elasticsearch-6.2.2/hs_err_pid1912.log

解决:内存不够,购买阿里云的机器可以动态增加内存

2、问题二

[root@iZwz95j86y235aroi85ht0Z bin]# ./elasticsearch

[2018-02-22T20:14:04,870][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.2.jar:6.2.2]

at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.2.jar:6.2.2]

at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.2.jar:6.2.2]

at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.2.jar:6.2.2]

解决:用非root用户

添加用户:useradd -m 用户名  然后设置密码  passwd 用户名

3、问题三

./elasticsearch

Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/software/temp/elasticsearch-6.2.2/config/jvm.options

解决:权限不够 chmod 777 -R 当前es目录

常见配置问题资料:https://www.jianshu.com/p/c5d6ec0f35e0

十九、ElasticSearch5.6测试数据准备

简介: ElasticSearch5.6.x简单测试

1、步骤 https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html

2、使用POSTMAN 工具

基础

查看集群状态:localhost:9200/_cat/health?v

查看索引列表:localhost:9200/_cat/indices?v

二十、SpringBoot2.x整合elasticsearch5.6.x

简介:SpringBoot2.x整合elasticSearch5.6.8实战

Spring Data Elasticsearch文档地址

https://docs.spring.io/spring-data/elasticsearch/docs/3.0.6.RELEASE/reference/html/

版本说明:SpringBoot整合elasticsearch

https://github.com/spring-projects/spring-data-elasticsearch/wiki/Spring-Data-Elasticsearch---Spring-Boot---version-matrix

1、添加maven依赖

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-elasticsearch</artifactId>

</dependency>

2、接口继承ElasticSearchRepository,里面有很多默认实现

注意点:

索引名称记得小写,类属性名称也要小写

新建实体对象article

加上类注解 @Document(indexName = "blog", type = "article")

3、配置文件:

# ELASTICSEARCH (ElasticsearchProperties)

spring.data.elasticsearch.cluster-name=elasticsearch # Elasticsearch cluster name.

spring.data.elasticsearch.cluster-nodes=localhost:9300 # Comma-separated list of cluster node addresses.

spring.data.elasticsearch.repositories.enabled=true # Whether to enable Elasticsearch repositories.

4、QueryBuilder使用

https://www.elastic.co/guide/en/elasticsearch/client/java-api/1.3/query-dsl-queries.html

//单个匹配,搜索name为jack的文档

QueryBuilder queryBuilder = QueryBuilders.matchQuery("title", "搜");

4、查看es数据

查看索引信息:http://localhost:9200/_cat/indices?v

查看某个索引库结构:http://localhost:9200/blog

查看某个对象:http://localhost:9200/blog/article/1

教程会持续更新。。。。

更多学习资料可参考:https://xdclass.net/html/course_catalogue.html?video_id=4

https://ke.qq.com/course/299498

零基础快速入门SpringBoot2.0教程 (三)的更多相关文章

  1. 零基础快速入门SpringBoot2.0教程 (二)

    一.SpringBoot2.x使用Dev-tool热部署 简介:介绍什么是热部署,使用springboot结合dev-tool工具,快速加载启动应用 官方地址:https://docs.spring. ...

  2. 零基础快速入门SpringBoot2.0教程 (四)

    一.JMS介绍和使用场景及基础编程模型 简介:讲解什么是小写队列,JMS的基础知识和使用场景 1.什么是JMS: Java消息服务(Java Message Service),Java平台中关于面向消 ...

  3. 零基础快速入门SpringBoot2.0 (一)

    零基础快速入门SpringBoot2.0 (一) 一.SpringBoot2.x依赖环境和版本新特性说明 简介:讲解新版本依赖环境和springboot2新特性概述 1.依赖版本jdk8以上, Spr ...

  4. 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1、SpringBoot2.x课程介绍和高手系列知识点

    1 ======================1.零基础快速入门SpringBoot2.0 5节课 =========================== 1.SpringBoot2.x课程全套介绍 ...

  5. [易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro]

    [易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro] 实用知识 宏Macro 我们今天来讲讲Rust中强大的宏Macro. Rust的宏macro是实现元编程的强大工具. ...

  6. [易学易懂系列|rustlang语言|零基础|快速入门|(21)|智能指针]

    [易学易懂系列|rustlang语言|零基础|快速入门|(21)|智能指针] 实用知识 智能指针 我们今天来讲讲Rust中的智能指针. 什么是指针? 在Rust,指针(普通指针),就是保存内存地址的值 ...

  7. [易学易懂系列|rustlang语言|零基础|快速入门|(10)|Vectors容器]

    [易学易懂系列|rustlang语言|零基础|快速入门|(10)] 有意思的基础知识 Vectors 我们之前知道array数组是定长,只可我保存相同类型的数据的数据类型. 如果,我们想用不定长的数组 ...

  8. 零基础快速入门web学习路线(含视频教程)

    下面小编专门为广大web学习爱好者汇总了一条完整的自学线路:零基础快速入门web学习路线(含视频教程)(绝对纯干货)适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利 ...

  9. [易学易懂系列|rustlang语言|零基础|快速入门|(28)|实战5:实现BTC价格转换工具]

    [易学易懂系列|rustlang语言|零基础|快速入门|(28)|实战5:实现BTC价格转换工具] 项目实战 实战5:实现BTC价格转换工具 今天我们来开发一个简单的BTC实时价格转换工具. 我们首先 ...

随机推荐

  1. 求第 i 个素数 Meissel Lehmer Algorithm + 二分 【模板】

    1473: L先生与质数V3 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1348  Solved: 147 [Submit][Status][Web ...

  2. 在谷歌地图上绘制行政区域轮廓【结合高德地图的API】

    实现思路: 1.利用高德地图行政区域API获得坐标列表 2.将坐标列表绘制在谷歌地图上[因为高德地图和国内的谷歌地图都是采用GCJ02坐标系,所有误差很小,可以不进行坐标误差转换] 注意点: 1.用百 ...

  3. having - 函数输出限制

    引用:https://zhidao.baidu.com/question/406745181.html 对函数输出进行限制 栗子: 比如,我们可能只希望看到Store_Information数据表中销 ...

  4. 前端 HTML-CSS 规范

    黄金定律 一个项目应该永远遵循同一套编码规范! 不管有多少人共同参与同一项目,一定要确保每一行代码都像是同一个人编写的. HTML 语法 用两个空格来代替制表符(tab) – 这是唯一能保证在所有环境 ...

  5. linux别名防删除

    最近有不相信rm -rf 了,虽然恢复了但是很难受啊 加个别名吧, 1.查看系统别名配置 alias 2.配置别名(临时生效) alias rm='echo do not use rm command ...

  6. string中执行sql语句

    Spring(JdbcTemplate.class)中的queryForMap().queryForObject().queryForLong().queryForInt()等方法都会去调用publi ...

  7. Java面向对象_常用类库api——日期操作类

    Data类 类Data表示特定的瞬间,精确到毫秒,也就是程序运行时的当前时间 Data data=new Data();//实例化Data对象,表示当前时间 Calendar类 日历类,使用此类可以将 ...

  8. MapReduce 二次排序

    默认情况下,Map 输出的结果会对 Key 进行默认的排序,但是有时候需要对 Key 排序的同时再对 Value 进行排序,这时候就要用到二次排序了.下面让我们来介绍一下什么是二次排序. 二次排序原理 ...

  9. 【JavaEE】tomcat部署项目的几种方式 .

    一.静态部署1.直接将web项目文件件拷贝到webapps 目录中     Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用.所以可以将JSP程 ...

  10. CentOS-7.5 解决ifconfig报错

    1.报错信息:-bash: ifconfig: command not found   2.检查IP地址是否设置正常 ip addr 以上说明ip设置正常,如果没有获取到IP地址则设置一个即可,设置i ...