SpringBoot知识点2

一. Spring Boot 的使用

1. 1 构建系统

尽量选择一个支持依赖管理,能消费发布到“Maven中央仓库”的artifacts的构建系统,比如Maven或者Gradle

1.2 依赖管理

Spting Boot 每次发布都会提供一个他所支持的精选依赖列表。实际上,在构建配置里你不需要提供任何依赖版本。因为SpringBoot已经帮你管理好了。当你进行更新时,那些依赖也会一起更新。

如果需要,你可以指定依赖的版本来覆盖SpringBoot的默认版本

精选列表包括所有能够跟SpringBoot一起使用的Spring模块及第三方库,该列表可以在材料清单Spring-boot-dependencies中获取到,也可以找到一些支持Maven和Gradle的资料。

Spring Boot 每次发布都关联一个Spring框架的基础版本,一般建议不要自己制定Spring版本

1.3 Maven相关

Maven用户可以在spring-boot-starter-parent项目中继承合理的默认值,比如properties文件和yml文件、资源过滤等。

如果要配置项目中继承spring-boot-starter-parent,可进行如下设置:

<- 从Spring Boot继承默认值 - > 
<parent> 
	<groupId> org.springframework.boot </ groupId> 
	<artifactId> spring-boot-starter-parent </ artifactId> 
	<version> 2.0.1.RELEASE < / version> 
</ parent>

此时可以只需在此依赖上指定SpringBoot版本,如果导入其他的starters,可以省略版本号。

按照以上设置完了后,你可以在自己的项目中通过覆盖属性来覆盖个别的依赖。例如,要升级到另一个SpringData发行版本,需要将一下内容添加到pom.xml:

<pre class="programlisting"><span class="hl-tag"><properties> </span>
    <span class="hl-tag"><spring-data- </span><span class="hl-tag">releasetrain.version></span> Fowler-SR2 <span class="hl-tag"></spring-data-releasetrain.version> 
</span><span class="hl-tag"></ properties></span></pre>

可以检查Spring-boot-dependenciespom 来获取支持的属性列表

1.4 在没有Parent Pom 的情况下使用Spring Boot

不是每个人都喜欢从spring-boot-starter-parentPOM 继承。您可能拥有自己的公司标准parent,或者您可能更愿意明确声明所有Maven配置。

如果你不想使用它spring-boot-starter-parent,你仍然可以通过依赖来保持依赖管理的好处(但不是插件管理) scope=import,如下所示:

<dependencyManagement> 
		<dependencies> 
		<dependency> 
			<- 从Spring Boot导入依赖项管理 - > 
			<groupId> org.springframework.boot </ groupId> 
			<artifactId> spring-boot-dependencies </ artifactId> 
			<version> 2.0 .1.RELEASE </ version> 
			<type> pom </ type> 
			<scope> import </ scope> 
		</ dependency> 
	</ dependencies> 
</ dependencyManagement>

如上所述,上述示例设置不会让您使用属性重写个别依赖关系。要达到相同的结果,您需要在输入之前在dependencyManagement项目中添加一个 条目。例如,要升级到另一个Spring Data发行版,您可以将以下元素添加到您的:spring-boot-dependenciespom.xml

<dependencyManagement> 
	<dependencies> 
		<- 覆盖Spring Boot提供的数据发布训练 - > 
		<dependency> 
			<groupId> org.springframework.data </ groupId> 
			<artifactId> spring-data-releasetrain </ artifactId> 
			<版本> Fowler-SR2 </ version> 
			<type> pom </ type> 
			<scope> import </ scope> 
		</ dependency> 
		<dependency> 
			<groupId> org.springframework.boot </ groupId> 
			<artifactId> spring-boot -dependencies </ artifactId> 
			<version>2.0.1.RELEASE </ version> 
			<type> pom</ type> 
			<scope> import </ scope> 
		</ dependency> 
	</ dependencies> 
</ dependencyManagement>

1.5 使用SpringBootMaven插件

SpringBoot包含一个Maven插件,可以将项目打包为可执行的jar。使用时徐江该插件添加到<plugins>中:

	<plugins> 
		<plugin> 
			<groupId> org.springframework.boot </ groupId> 
			<artifactId> spring-boot-maven-plugin </ artifactId> 
		</ plugin> 
	</ plugins> 
</ build>

二、构建代码

SpringBoot对于代码结构没什么特殊要求,不过遵循以下的内容还是有一些帮助的。

1.使用“default”包

没有声明package时,就被默认在default package下,通常不推荐使用此包,因为对于使用部分注解的SpringBoot 的应用来说,它会扫描每个jar中的类,可能会造成某些速度问题。
应该使用Java推荐的包命名规范多数ide会自动生成

2.主要应用程序类

应将应用的main类放到所有类的最顶层,并在此类中加入@EnableAutoConfiguration注解,这样就隐式的定义了一个包搜索路径,来对一些注解实体实现更加准确的搜索(比如@Service,@Component等)

例如,在这样应用后,Spring 将搜索@EnableAutoConfiguration注解类下的@Entity实体。

采用root package 方式,你就可以使用@ComponentScan注解而不需要制定basePackage属性,也可以使用@SpringBootApplication注解,只要将main类放在root package中。

Application.java将声明main方法,还有基本的@Configuration。以下是较为标准的main类书写方式:

package com.example.myproject;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
 
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {
 
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
 
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习尚硅谷视频整理的文档 Spring Boot 1 1 Spring Boot入门 4 1.1 简介 4 1.2 微服务(martin fowler发表了一篇文章) 5 1.3 环境约束 7 1.4 第一个Spring Boot项目(jar):HelloWorld 8 1.5 入门案例详解 11 1.5.1 POM文件 11 1.5.2 主程序类,主入口类 12 1.6 使用Spring Initializer向导快速创建Spring Boot 16 2 Spring Boot配置 18 2.1 配置文件 18 2.2 YML语法 19 2.3 YML配置文件值获取 21 2.4 properties配置文件乱码问题 24 2.5 @ConfigurationProperties与@Value的区别 25 2.6 配置@PropertySource、@ImportResource、@Bean 27 2.7 配置文件占位符 30 2.8 Profile多环境支持 31 2.9 配置文件的加载位置 33 2.10 外部配置加载顺序 36 2.11 自动配置原理 37 2.12 @Conditional派生注解 41 3 Spring Boot与日志 42 3.1 日志框架分类和选择 42 3.2 SLF4j使用 43 3.3 其他日志框架统一转换成slf4j+logback 44 3.4 Spring Boot日志使用 45 3.5 Spring Boot默认配置 47 3.6 指定日志文件和日志Profile功能 52 3.7 切换日志框架(不使用SLF4j+LogBack) 54 4 Spring Boot与Web开发 55 4.1 Web开发简介 55 4.2 静态资源映射规则 56 4.3 引入Thymeleaf 60 4.4 Thymeleaf语法 61 4.5 SpringMVC自动配置原理 67 4.6 SpringBoot扩展与全面接管 70 4.7 如何修改SpringBoot的默认配置 72 4.8 【实验】CRUD操作 73 4.8.1 默认访问首页 73 4.8.2 登录页面国际化 74 4.8.3 登录 80 4.8.4 拦截器进行登录检查 81 4.8.5 实验要求(没按要求做,不想改了!) 82 4.8.6 CRUD-员工列表 83 4.8.7 CRUD-员工修改 86 4.8.8 CRUD-员工添加 87 4.8.9 CRUD-员工删除 88 4.9 错误处理原理&错误页面定制 90 4.10 配置嵌入式Servlet容器(springboot 1.50版本) 97 4.10.1 如何定制和修改Servelt容器的相关配置 97 4.10.2 注册servlet三大组件【servlet,filter,listener】 98 4.10.3 替换为其他嵌入式容器 102 4.10.4 嵌入式servlet容器自动配置原理 103 4.10.5 嵌入式servlet容器启动原理 103 4.11 使用外置的Servlet容器 104 4.11.1 步骤 104 4.11.2 原理 107 5 Spring Boot与Docker(虚拟化容器技术) 110 5.1 简介 110 5.2 核心概念 111 5.3 安装Docker 112 5.4 Docker常用命令&操作 113 5.5 安装MySQL示例 114 6 Spring Boot与数据访问 115 6.1 JDBC 115 6.1.1 实现 115 6.1.2 自动配置原理 116 6.2 整合Durid数据源 117 6.3 整合Mybatis 122 6.3.1 注解版 123 6.3.2 配置文件版 124 6.4 整合SpringData JPA 125 6.4.1 SpringData简介 125 6.4.2 整合 126 7 Spring Boot启动配置原理 128 7.1 启动流程(Springboot 1.50版本) 128 7.1.1 创建SpringApplication对象 129 7.1.2 运行run方法 130 7.1.3 编写事件监听机制 132 8 Spring Boot自定义starters 136 8.1 概述 136 8.2 步骤 137 9 更多Springboot整合示例 144 10 Spring Boot与缓存 145 10.1 JSR107缓存规范 145 10.2 Spring的缓存抽象 146 10.2.1 基本概念 146 10.2.2 整合项目 146 10.2.3 CacheEnable注解 148 10.2.4 Cache注解 150 10.3 整合redis 154 10.3.1 在Docker上安装redis 154 10.3.2 Redis的Template 154 10.3.3 整合(百度) 155

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值