springboot学习思维笔记
2024-04-09 13:27:03 18 举报
AI智能生成
Spring Boot是一个用于简化Spring应用程序开发、测试和部署的框架。它提供了一种简洁、快速的方法来开发基于Java的应用程序,无需过多的配置。这份Spring Boot学习思维笔记涵盖了Spring Boot的核心概念、技术和最佳实践。通过学习这份笔记,您将掌握Spring Boot的基本原理、自动配置、Spring Boot Starter、Spring Boot测试支持、Spring Boot CLI、Spring Boot Actuator等重要知识点。它还包括了解Spring Boot应用程序的结构、打包和部署方法。这份笔记适合所有对Spring Boot感兴趣的开发人员,无论是初学者还是有经验的开发者。通过阅读和学习这份笔记,您将能够快速掌握Spring Boot,提高开发效率,构建出高质量的Spring应用程序。
作者其他创作
大纲/内容
附录
基于JHipster的代码生成
常用应用属性配置列表
分布式系统开发
微服务/原生云应用
SpringCloud快速入门
配置服务
服务发现
路由网关
负载均衡
断路由
实战
项目构建
服务发现Discovery(Eureka Server)
配置Config(ConfigServer)
服务模块Person服务
服务模块Some服务
界面模块UI(Ribbon,Feign)
断路器监控Monitor(DashBoard)
运行
基于Docker部署
Dockerfile编写
runboot.sh脚本的编写
Dockerfile编写
Docker的Mean插件
编译镜像
DockerCompose
Docker-compose.yml编写
运行
应用监控
http
新建SpringBoot项目
测试端点
actuator
autoconfig
beans
dump
configprops
health
info
metrics
mappings
shutdown
trace
定制端点
修改端点id
开启端点
关闭端点
只开启所需端点
定制端点访问路径
定制端点访问端口
关闭http端点
自定义端点
状态服务
自定义端点
注册端点并定义演示控制器
自定义HealthIndicatior
JMX
SSH
新建SpringBoot项目
运行
常用命令
定制登录用户
扩展命令
SpringBoot开发部署与测试
开发的热部署
模板热部署
Thymeleaf
FreeMarker
Groovy
Velocity
SpringLoaded
JRebel
spring-boot-devtools
常规部署
jar形式
打包
运行
注册为Linux的服务
war形式
打包方式为war时
打包方式为jar时
云部署--基于Docker的部署
Dockerfile
FROM指令
MAINTAINER指令
RUN指令
CMD指令
EXPOSE指令
ENV指令
ADD指令
ENTRYPOINT指令
安装Docker
项目目录及文件
编译镜像
运行
SpringBoot的测试
新建SpringBoot项目
业务代码
测试用例
执行测试
SpringBoot企业级开发
安全控制SpringSecurity
SpringSecurity快速入门
什么是Spring Security
Spring Security的配置
DelegatingFilterProxy
配置
用户认证
内存中的用户
JDBC中的用户
通用的用户
请求授权
定制登录行为
SpringBoot的支持
自动配置了一个内存中的用户
忽略/css/** /js/** /images/** /**/favicon.ico等静态文件的拦截
自动配置的securityFilterChainRegistration的Bean
实例
批处理SpringBatch
SpringBatch快速入门
什么是Spring Batch
Spring Batch主要组成
JobRepository
JobLauncher
Job
Step
ItemReader
ItemProcessor
ItemWriter
Job监听
数据读取
数据处理及校验
数据处理
数据校验
数据输出
计划任务
参数后置绑定
SpringBoot的支持
实例
异步消息
企业级消息代理
Spring的支持
SpringBoot的支持
JMS实战
AMQP实战
系统集成SpringIntegration
SpringIntegration快速入门
Message
Channel
顶级接口
MessageChannel
PollableChannel
SubscribaleChannel
常用消息通道
PublishSubscribeChannel
QueueChannel
PriorityChannel
RendezvousChannel
DirectChannel
ExecutorChannel
通道拦截器
MessageEndPoint
Channel Adapter
Gateway
Service Activeator
Router
Filter
Splitter
Aggregator
Enricher
Transformer
Bridge
Spring Integration Java DSL
实例
SpringBoot的数据访问
引入Docker
Docker的安装
Linux下安装
Windows下安装
Docker常用命令及参数
Docker镜像命令
Docker镜像检索
镜像下载
镜像列表
删除镜像
Docker容器命令
容器基本操作
容器列表
查看运行和停止状态
停止和启动容器
停止容器
启动容器
端口映射
删除容器
容器日志
登录容器
下载所需的Docker镜像
异常处理
SpringDataJPA
SpringDataJPA
什么是Spring Data JPA
定义数据访问层
配置使用Spring Data JPA
定义查询方法
根据属性名查询
常规查询
限制结果数量
使用JPA的NamedQuery
使用@Query查询
使用参数索引
使用命名参数
更新查询
Specification
排序与分页
定义
使用排序
使用分页
自定义Repository的实现
定义自定义Repository接口
定义接口实现
自定义ReposityFactoryBean
开启自定义支持使用@EnableJpaRepositories的repositoryFactoryBeanClass来指定FactoryBean即可
SpringBoot的支持
JDBC的自动配置
对JPA的自动配置
对Spring Data JPA的自动配置
Spring Boot下的Spring Data JPA
实例
安装Oracle XE
非Docker 安装
Docker 安装
端口映射
管理
新建Spring Boot 项目
配置基本属性
定义映射实体类
定义数据访问接口
运行
SpringDataREST
Spring Data REST
什么是Spring Data REST
Spring MVC中配置使用Spring Data REST
继承方式
导入方式
SpringBoot的支持
实例
新建Spring Boot项目
实体类
实体类的Repository
Postman
REST服务测试
jQuery
AngularJS
列表
获取单一对象
查询
分页
排序
保存
更新
删除
定制
定制根路径
定制节点路径
声明式事务
Spring的事务机制
JDBC
DataSourceTransactionManager
JPA
JpaTransactionManger
Hibernate
HibernateTransactionManger
JDO
JdoTransactionManger
分布式事务
JtaTransactionManager
声明式事务
注解事务行为
类级别使用@Transactional
SpringDataJPA的事务支持
SpringBoot的事务支持
自动配置的事务管理器
自动开启注解事务的支持
实例
数据缓存Cache
Spring缓存支持
Spring支持的CacheManager
SimpleCacheManager
ConcurrentMapCacheManager
NoOpCacheManager
EhCacheCacheManager
GuavaCacheManager
HazelcastCacheManager
JCacheCacheManager
RedisCacheManager
声明式缓存注解
@Cacheable
@CachePut
@CacheEvict
@Caching
开启声明式缓存支持
SpringBoot的事务支持
实例
切换缓存技术
EhCache
Guava
Redis
非关系型数据库NoSQL
MongoDB
Spring的支持
Object/Document映射注解支持
@Document
@Id
DbRef
@Field
@Version
MongoTemplate
Repository的支持
SpringBoot的支持
安装MongoDB
非Docker
Docker安装
Redis
Spring的支持
配置
使用
opsForValue()
opsForList()
opsForSet()
opsForZSet()
opsForHash()
定义Serializer
Spring Boot的支持
安装Redis
非Docker安装
Docker安装
spring基础
Spring概述
Spring的简史
xml配置
注解配置
java配置
Spring概述
Spring的模块
核心容器CoreContainer
Spring-Core
Spring-Beans
Spring-Context
Spring-Context-Support
Spring-Expression
AOP
Spring-AOP
Spring-Aspects
Messaging
Spring-Messaging
WEB
Spring-Web
Spring-Webmvc
Spring-WebSocket
Spring-Webmvc-Portlet
数据访问/集成(DataAccess/Intefration)
Spring-JDBC
Spring-TX
Spring-ORM
Spring-OXM
Spring-JMS
Spring的生态
Spring Boot
Spring XD
Spring Cloud
Spring Data
Spring Integration
Spring Batch
Spring Security
Spring HATEOAS
Spring Social
Spring AMQP
Spring Mobile
Spring for Android
Spring Web Flow
Spring Web Services
Spring LDAP
Spring Session
Spring项目快速搭建
Maven简介
Maven安装
Maven的pom.xml
dependencies
dependency
变量定义
编译插件
Spring项目的搭建
Spring Tool Suite
https://spring.io/tools/sts/all
IntelliJ IDEA
NetBeans
https://netbeans.org/downloads/
Spring基础配置
依赖注入
声明Bean的注解
@Component组件,没有明确的角色
@Service在业务逻辑层(service层)
@Repository在数据访问层(dao层)
@Controller在展现层(MVC→SpringMVC)
注入Bean的注解
@Autowired:Spring提供的注解
@Inject:JSR-330提供的注解
@Resource:JSR-250提供的注解
Java配置
@Configuration声明当前类是一个配置类
@Bean注解在方法上,声明当前方法的返回值为一个Bean
AOP
@Aspect 声明是一个切面
拦截规则@After @Before @Around
PointCut
JoinPoint
Spring常用配置
Bean的Scope
Singleton
Prototype
Request
Session
GlobalSession
SpringEL和资源调用
注入普通字符
注入操作系统属性
注入表达式云算结果
注入其他Bean的属性
注入文件内容
注入网址内容
注入属性文件
Bean的初始化和销毁
Java配置方式
注解方式
Profile
@Profile
通过设定jvm的spring.profiles.active参数
web项目设置在Servlet的context parameter中
事件Application Event
自定义事件,集成ApplicationEvent
定义事件监听器,实现ApplicationListener
使用容器发布事件
Spring高级话题
Spring Aware
BeanNameAware
BeanFactoryAware
ApplicationContextAware
MessageSourceAware
ApplicationEventPublisherAware
ResourceLoaderAware
多线程
计划任务
cron
fixDelay
fixRate
条件注解@Conditional
组合注解与元注解
@Enable*注解的工作原理
直接导入配置类
依据条件选择配置类
动态注册Bean
测试
Spring TestContext Framework集成测试
SpringMVC基础
Spring MVC概述
SpringMVC项目快速搭建
构建Maven项目
日志配置
演示页面
Spring MVC配置
Web配置
简单控制器
运行
Spring MVC的常用注解
@Controller
@RequestMapping
@ResponseBody
@RequestBody
@PathVariable
@RestController
Spring MVC的基本配置
静态资源映射
拦截器配置
@ControllerAdivce
@ExceptionHandler
@InitBinder
@ModelAttribute
其他配置
ViewController
路径匹配参数配置
WebMvcConfigurerAdapter
WebMvcConfigurer
Spring MVC的高级配置
文件上传配置
自定义HttpMessageConverter
MappingJackson2HttpMessageConverter
StringHttpMessageConverter
服务器端推送技术
SSE
Servlet3.0+异步方法处理
Spring MVC的测试
MockMVC
MockHttpServlerRequest
MockHttpServletResponse
MockHttpSession
SpringBoot基础
SpringBoot概述
什么是SpringBoot
SpringBoot核心功能
独立运行的Spring项目
内嵌Servlet容器
提供Starter简化Maven配置
自动配置Spring
准生产的应用监控
无代码声称和xml配置
SpringBoot的优缺点
优点
快速构建项目
对主流开发框架的无配置集成
项目可独立运行,无需外部依赖Servlet容器
提供运行时的应用监控
极大地提高了开发,部署效率
与云计算的天然集成
缺点
书籍文档较少,且不够深入
SpringBoot版本
SpringBoot快速搭建
http://start.spring.io
SpringToolSuite
InterlliJIDEA
SpringBootCLI
Maven手工构建
简单演示
SpringBoot核心
基本配置
入口类和@SpringBootApplication
@Configuration
@EnableAutoConfiguration
@ComponentScan
关闭特定的自动配置
定制Banner
修改Banner
关闭Banner
main里修改
fluentAPI
SpringBoot的配置文件
application.properties
application.yml
src/main/resources
starter pom
官方starter pom
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
使用XML配置
@ImportResource
外部配置
命令行参数配置
常规属性配置
类型安全的配置(基于properties)
日志配置
Profile配置
SpringBoot运行原理
运作原理
核心注解
@ConditionalOnBean
@ConditionalOnClass
@ConditionalOnExpression
@ConditionalOnJava
@ConditionalOnJndi
ConditionalOnMissingBean
ConditionalOnMissingClass
ConditionalOnNotWebApplication
ConditionalOnProperty
ConditionalOnResource
ConditionalOnSingleCandidate
ConditionalOnWebApplication
实例分析
配置参数
配置Bean
实战
Springboot的Web开发
SpringBoot的Web开发支持
ServerPropertiesAutoConfiguration和ServerProperties
HttpEncodingAutoConfiguration和HttpEncodingProperties
MultipartAutoConfiguration和MultipartProperties
JacksonHttpMessageConvertersConfiguration
WebMvcAutoConfiguration和WebMvcProperties
Thymeleaf模板引擎
Thymeleaf基础知识
引入Thymeleaf
访问model中的数据
model中的数据迭代
数据判断
在javaScript中访问model
其他知识
与SpringMVC集成
SpringBoot的Thymeleaf支持
实战
新建Spring Boot项目
示例JavaBean
脚本样式静态文件
演示页面
数据准备
运行
Web相关配置
SpringBoot提供的自动配置
自动配置的ViewResolver
ContentNegotiatingViewResolver
BeanNameViewResolver
InternalResourceViewResolver
自动配置的静态资源
类路径文件
webjar
自动配置的Formatter和Conventer
自动配置的HttpMessageConverters
静态首页的支持
接管SpringBoot的Web配置
注册Servlet,Filter,Listener
Tomcat配置
配置Tomcat
代码配置Tomcat
通用配置
新建类的配置
当前配置文件内配置
特定配置
替换Tomcat
替换为Jetty
替换为Undertow
SSL配置
生成证书
Spring Boot配置SSL
http转向https
Favicon配置
默认的Favicon
关闭Favicon
设置自己的Favicon
WebSocket
什么是WebSocket
SpringBoot提供的自动配置
实战
准备
广播式
配置WebSocket
浏览器向服务端发送的消息用此类接受
服务端向浏览器发送的此类的消息
控制器
添加脚本
演示页面
配置viewController
点对点式
添加Spring Security的starter pom
Spring Security的简单配置
配置WebSocket
控制器
登录页面
聊天页面
增加页面的viewController
基于Bootstrap和AnglarJS的现代Web应用
Bootstrap
什么是Bootstrap
下载并引入Bootstrap
CSS支持
页面组件支持
Javascript支持
AngularJS
什么是AngularJS
下载并引入AngularJS
模块,控制器和数据绑定
Scope和Event
Scope
Event
冒泡事件
广播事件
多视图和路由
依赖注入
Service和Factory
自定义指令
实战
0 条评论
下一页