SpringBoot
2021-11-23 23:43:59 77 举报
AI智能生成
登录查看完整内容
SpringBoot
作者其他创作
大纲/内容
什么是Spring Security
DelegatingFilterProxy
配置
内存中的用户
JDBC中的用户
通用的用户
请求授权
定制登录行为
用户认证
Spring Security的配置
SpringSecurity快速入门
自动配置了一个内存中的用户
忽略/css/** /js/** /images/** /**/favicon.ico等静态文件的拦截
自动配置的securityFilterChainRegistration的Bean
SpringBoot的支持
实例
安全控制SpringSecurity
什么是Spring Batch
JobRepository
JobLauncher
Job
Step
ItemReader
ItemProcessor
ItemWriter
Spring Batch主要组成
Job监听
数据读取
数据处理
数据校验
数据处理及校验
数据输出
计划任务
参数后置绑定
SpringBatch快速入门
批处理SpringBatch
企业级消息代理
Spring的支持
JMS实战
AMQP实战
异步消息
SpringIntegration快速入门
Message
MessageChannel
PollableChannel
SubscribaleChannel
顶级接口
PublishSubscribeChannel
QueueChannel
PriorityChannel
RendezvousChannel
DirectChannel
ExecutorChannel
常用消息通道
通道拦截器
Channel
Channel Adapter
Gateway
Service Activeator
Router
Filter
Splitter
Aggregator
Enricher
Transformer
Bridge
MessageEndPoint
Spring Integration Java DSL
系统集成SpringIntegration
SpringBoot企业级开发
Thymeleaf
FreeMarker
Groovy
Velocity
模板热部署
SpringLoaded
JRebel
spring-boot-devtools
开发的热部署
打包
运行
注册为Linux的服务
jar形式
打包方式为war时
打包方式为jar时
war形式
常规部署
FROM指令
MAINTAINER指令
RUN指令
CMD指令
EXPOSE指令
ENV指令
ADD指令
ENTRYPOINT指令
Dockerfile
安装Docker
项目目录及文件
编译镜像
云部署--基于Docker的部署
新建SpringBoot项目
业务代码
测试用例
执行测试
SpringBoot的测试
SpringBoot开发部署与测试
actuator
autoconfig
beans
dump
configprops
health
info
metrics
mappings
shutdown
trace
测试端点
修改端点id
开启端点
关闭端点
只开启所需端点
定制端点访问路径
定制端点访问端口
关闭http端点
定制端点
状态服务
自定义端点
注册端点并定义演示控制器
自定义HealthIndicatior
http
JMX
常用命令
定制登录用户
扩展命令
SSH
应用监控
微服务/原生云应用
配置服务
服务发现
路由网关
负载均衡
断路由
SpringCloud快速入门
项目构建
服务发现Discovery(Eureka Server)
配置Config(ConfigServer)
服务模块Person服务
服务模块Some服务
断路器监控Monitor(DashBoard)
实战
runboot.sh脚本的编写
Dockerfile编写
Docker的Mean插件
DockerCompose
Docker-compose.yml编写
基于Docker部署
分布式系统开发
基于JHipster的代码生成
常用应用属性配置列表
附录
什么是SpringBoot
独立运行的Spring项目
内嵌Servlet容器
提供Starter简化Maven配置
自动配置Spring
准生产的应用监控
无代码声称和xml配置
SpringBoot核心功能
快速构建项目
对主流开发框架的无配置集成
提供运行时的应用监控
与云计算的天然集成
优点
缺点
SpringBoot的优缺点
SpringBoot版本
SpringBoot概述
SpringToolSuite
http://start.spring.io
下载压缩包
基于SpringBoot官网创建项目
使用spring官网(默认) 需要提前设置maven镜像 否则导入依赖很慢
基于阿里云创建项目,地址:https://start.aliyun.com
基于IDEA的Spring Initializr
Maven手工构建
SpringBootCLI
SpringBoot快速搭建方式
所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
parent
SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的
使用任意坐标时,仅书写GAV中的G(GroupId)和A(ArtifactId),V由SpringBoot提供,除非SpringBoot未提供对应版本V如发生坐标错误,再指定Version(要小心版本冲突)
实际开发
starter
开启自动扫描 默认扫描引导类所在包及其子包
@ComponentScan
声明配置类
@Configuration
开启自动配置
@EnableAutoConfiguration
@SpringBootApplication含
引入Properties文件
@ConfigurationProperties
@Bean
引导类的run方法实际上就是获取Spring容器
引导类
内嵌Tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理springboot内置服务器还有其他两个
负载了若干较重的组件
tomcat(默认)
更轻量级,负载性能远不及tomcat
jetty
负载性能勉强跑赢tomcat
undertow
使用maven依赖管理变更起步依赖项变更内嵌服务器思想是去除现有服务器,添加全新的服务器
如何更改服务器
内置tomcat
application.properties
字面值表示方式
数组表示方式
在配置文件中可以使用属性名引用方式引用属性
如\\t制表位 \换行
属性值中如果出现转义字符,需要使用双引号包裹
通过env对象getProperty方法获取数据
使用注解@Autowired封装全部数据到Environment对象
封装类需要定义为Spring管理的bean,否则无法进行属性注入一般都采用@enableconfigurationproperties而不是@component把对象交由spring管理这里为了方便
配置jdbc
使用@ConfigurationProperties自定义对象封装指定数据
yaml语法规则
使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名……}
yaml数据读取
application.yml(主流)
application.yaml
SpringBoot配置文件加载顺序◆ application.properties > application.yml > application.yaml
手动添加识别配置文件
IDEA识别配置文件bug解决(绿叶变粉)
基础配置
@Autowired
通过配置类构造方法注入
@Bean方法形参
@Configurationpublic class JdbcConfiguration { @Bean // 声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到DataSource中 @ConfigurationProperties(prefix = \"jdbc\") public DataSource dataSource() { DruidDataSource dataSource = new DruidDataSource(); return dataSource; }}
该类必须有setter方法
@Bean@ConfigurationProperties(prefix = \"jdbc\")
属性注入
整合第三方技术通用方式 导入对应的starter 根据提供的配置格式,配置非默认值对应的配置项
学习整合的思想
1.导入测试对应的starter(默认)2.测试类使用@SpringBootTest修饰3.使用自动装配的形式添加要测试的对象
注意:测试类如果不存存在于引导类对应所在包或子包中需指定引导类@SpringBootTest(classes= 引导类.class)
整合原理和Spring整合Junit一样,可以去看Spring
整合Junit
yml设置数据源参数
数据库SQL映射需要添加@Mapper被容器识别到
使用8版本mysql时驱动类过时更换为com.mysql.cj.jdbc.Driver
注意:SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区
整合MyBatis
由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version如果不使用阿里云创建项目需要手动添加依赖
可以将原来的starte删掉
定义数据层接口与映射配置,继承BaseMapper
id生成策略使用数据库自增策略
若需要看到sql语句执行流程需要开启MyBatisPlus的日志
整合MyBatis-Plus
导入Druid对应的starter
变更Druid的配置方式(推荐)
指定数据源类型
两种配置方式
整合Druid
整合第三方技术
含@Getter@Setter功能
为当前实体类在编译期设置对应的get/set方法,toString方法,hashCode方法,equals方法等
@Data
@RequiredArgsConstructor : 生成一个包含 \"特定参数\" 的构造器,特定参数指的是那些有加上 final 修饰词的变量们
lombok
练习项目
SpringBoot基础
Singleton
Prototype
Request
Session
GlobalSession
Bean的Scope
注入普通字符
注入操作系统属性
注入表达式云算结果
注入其他Bean的属性
注入文件内容
注入网址内容
注入属性文件
SpringEL和资源调用
Java配置方式
注解方式
Bean的初始化和销毁
@Profile
通过设定jvm的spring.profiles.active参数
web项目设置在Servlet的context parameter中
Profile
使用容器发布事件
事件Application Event
Spring常用配置
BeanNameAware
BeanFactoryAware
ApplicationContextAware
MessageSourceAware
ApplicationEventPublisherAware
ResourceLoaderAware
Spring Aware
多线程
cron
fixDelay
fixRate
条件注解@Conditional
组合注解与元注解
直接导入配置类
依据条件选择配置类
动态注册Bean
@Enable*注解的工作原理
Spring TestContext Framework集成测试
测试
Spring高级话题
入口类和@SpringBootApplication
关闭特定的自动配置
修改Banner
main里修改
fluentAPI
关闭Banner
定制Banner
application.yml
src/main/resources
SpringBoot的配置文件
spring-boot-starter
spring-boot-starter-actuator
spring-boot-starter-remote-shell
spring-boot-starter-amqp
spring-boot-starter-aop
spring-boot-starter-batch
spring-boot-starter-cache
spring-boot-starter-cloud-connectors
spring-boot-starter-data-elasticsearch
spring-boot-starter-data-gemfire
spring-boot-starter-data-jpa
spring-boot-starter-data-mongodb
spring-boot-starter-data-rest
spring-boot-starter-data-solr
spring-boot-starter-freemarker
spring-boot-starter-groovy-templates
spring-boot-starter-hateoas
spring-boot-starter-hornetq
spring-boot-starter-integration
spring-boot-starter-jdbc
spring-boot-starter-jerscy
spring-boot-starter-jta-atomikos
spring-boot-starter-jta-bitronix
spring-boot-starter-mail
spring-boot-starter-mobile
spring-boot-starter-mustache
spring-boot-starter-redis
spring-boot-starter-security
spring-boot-starter-social-facebook
spring-boot-starter-social-linkedin
spring-boot-starter-social-twitter
spring-boot-starter-test
spring-boot-starter-thymeleaf
spring-boot-starter-velocity
spring-boot-starter-web
spring-boot-starter-Tomcat
spring-boot-starter-Jetty
spring-boot-starter-undertow
spring-boot-starter-logging
spring-boot-starter-log4j
spring-boot-starter-websocket
spring-boot-starter-ws
官方starter pom
Handlebars
Vaadin
Apache Camel
WRO4J
Spring Batch
HDIV
Jade Templates(jade4J)
Actitivi
第三方starter pom
starter pom
@ImportResource
使用XML配置
基本配置
命令行参数配置
常规属性配置
类型安全的配置(基于properties)
外部配置
日志配置
Profile配置
运作原理
@ConditionalOnBean
@ConditionalOnClass
@ConditionalOnExpression
@ConditionalOnJava
@ConditionalOnJndi
ConditionalOnMissingBean
ConditionalOnMissingClass
ConditionalOnNotWebApplication
ConditionalOnProperty
ConditionalOnResource
ConditionalOnSingleCandidate
ConditionalOnWebApplication
核心注解
配置参数
配置Bean
实例分析
SpringBoot运行原理
SpringBoot核心
ServerPropertiesAutoConfiguration和ServerProperties
HttpEncodingAutoConfiguration和HttpEncodingProperties
MultipartAutoConfiguration和MultipartProperties
JacksonHttpMessageConvertersConfiguration
WebMvcAutoConfiguration和WebMvcProperties
SpringBoot的Web开发支持
引入Thymeleaf
访问model中的数据
model中的数据迭代
数据判断
在javaScript中访问model
其他知识
Thymeleaf基础知识
与SpringMVC集成
SpringBoot的Thymeleaf支持
新建Spring Boot项目
示例JavaBean
脚本样式静态文件
演示页面
数据准备
Thymeleaf模板引擎
ContentNegotiatingViewResolver
BeanNameViewResolver
InternalResourceViewResolver
自动配置的ViewResolver
类路径文件
webjar
自动配置的静态资源
自动配置的Formatter和Conventer
自动配置的HttpMessageConverters
静态首页的支持
SpringBoot提供的自动配置
接管SpringBoot的Web配置
Web相关配置
配置Tomcat
新建类的配置
当前配置文件内配置
通用配置
特定配置
代码配置Tomcat
替换为Jetty
替换为Undertow
替换Tomcat
生成证书
Spring Boot配置SSL
http转向https
SSL配置
Tomcat配置
默认的Favicon
关闭Favicon
设置自己的Favicon
Favicon配置
什么是WebSocket
准备
配置WebSocket
浏览器向服务端发送的消息用此类接受
服务端向浏览器发送的此类的消息
控制器
添加脚本
配置viewController
广播式
添加Spring Security的starter pom
Spring Security的简单配置
登录页面
聊天页面
增加页面的viewController
点对点式
WebSocket
什么是Bootstrap
下载并引入Bootstrap
CSS支持
页面组件支持
Javascript支持
Bootstrap
什么是AngularJS
下载并引入AngularJS
Scope
冒泡事件
广播事件
Event
Scope和Event
多视图和路由
依赖注入
Service和Factory
自定义指令
AngularJS
基于Bootstrap和AnglarJS的现代Web应用
Springboot的Web开发
Linux下安装
Windows下安装
Docker的安装
Docker镜像检索
镜像下载
镜像列表
删除镜像
Docker镜像命令
容器基本操作
容器列表
查看运行和停止状态
Docker容器命令
停止容器
启动容器
端口映射
删除容器
容器日志
登录容器
停止和启动容器
Docker常用命令及参数
下载所需的Docker镜像
异常处理
引入Docker
什么是Spring Data JPA
定义数据访问层
配置使用Spring Data JPA
常规查询
限制结果数量
根据属性名查询
使用JPA的NamedQuery
使用参数索引
使用命名参数
更新查询
Specification
定义
使用排序
使用分页
排序与分页
使用@Query查询
定义查询方法
定义自定义Repository接口
定义接口实现
自定义ReposityFactoryBean
开启自定义支持使用@EnableJpaRepositories的repositoryFactoryBeanClass来指定FactoryBean即可
自定义Repository的实现
SpringDataJPA
JDBC的自动配置
对JPA的自动配置
对Spring Data JPA的自动配置
Spring Boot下的Spring Data JPA
非Docker 安装
Docker 安装
管理
安装Oracle XE
新建Spring Boot 项目
配置基本属性
定义映射实体类
定义数据访问接口
什么是Spring Data REST
继承方式
导入方式
Spring MVC中配置使用Spring Data REST
Spring Data REST
实体类
实体类的Repository
Postman
jQuery
列表
获取单一对象
查询
分页
排序
保存
更新
删除
REST服务测试
定制根路径
定制节点路径
定制
SpringDataREST
DataSourceTransactionManager
JDBC
JpaTransactionManger
JPA
HibernateTransactionManger
Hibernate
JdoTransactionManger
JDO
JtaTransactionManager
分布式事务
Spring的事务机制
声明式事务
注解事务行为
类级别使用@Transactional
SpringDataJPA的事务支持
自动配置的事务管理器
自动开启注解事务的支持
SpringBoot的事务支持
SimpleCacheManager
ConcurrentMapCacheManager
NoOpCacheManager
EhCacheCacheManager
GuavaCacheManager
HazelcastCacheManager
JCacheCacheManager
RedisCacheManager
Spring支持的CacheManager
@Cacheable
@CachePut
@CacheEvict
@Caching
声明式缓存注解
开启声明式缓存支持
Spring缓存支持
EhCache
Guava
Redis
切换缓存技术
数据缓存Cache
@Document
@Id
DbRef
@Field
@Version
Object/Document映射注解支持
MongoTemplate
Repository的支持
非Docker
Docker安装
安装MongoDB
MongoDB
opsForValue()
opsForList()
opsForSet()
opsForZSet()
opsForHash()
使用
定义Serializer
Spring Boot的支持
非Docker安装
安装Redis
非关系型数据库NoSQL
SpringBoot的数据访问
springboot
0 条评论
回复 删除
下一页