Spring实战第五版读书笔记——(一)

第一部分 Spring 基础

第一章 Spring起步

唯一的不变就是变化,Spring框架新的关注点包括:
1、微服务。
2、反应式编程。
3、Spring Boot。

什么是Spring?

组件

任何实际的应用程序都是由很多组件组成的。每个组件负责整个应用功能的一部分。这些组件需要与其它的应用元素进行协调以完成自己的任务。当应用程序运行时,需要以某种方式创建并引入这些组件。在Spring中,这些组件可以称为Bean。

容器

Spring的核心是提供了一个容器(container),通常称为Spring应用上下文(Spring Application Context),它们会创建和管理这些组件。

依赖注入

Spring通过依赖注入DI(Dependency Injection)的模式,借助于自动装配autowiring和组件扫描component scanning,将Bean装配在一起。组件扫描技术使得Spring能够自动发现应用类路径下的组件,并将它们创建成Spring应用上下文中的bean。通过自动装配技术,Spring能够自动为组件注入它们所依赖的其它bean。

Spring Boot

Spring Boot是Spring框架的扩展,通过自动配置autoconfiguration,大幅度减少了构建应用所需要的显示配置的数量,极大的改善了Spring的开发。

初始化Spring应用

Spring Initializr是一个基于浏览器的web 应用,同时也是一个REST API,能够生成一个Spring项目结构的骨架。使用它的方式包括:
1、通过https://start.spring.io/的web应用。
2、在命令行中使用curl命令
3、在命令行中使用SpringBoot命令行接口,Spring Boot CLI。
4、在IDE,例如Spring Tool Suite,IntelliJ IDEA,NetBeans中创建新项目。
Spring Initializr默认使用具有JAR的打包方式,这是基于云思维做出的选择。

spring-boot- maven-plugin

这个插件提供了一些重要功能:
1、提供了一个maven goal。
2、确保依赖的所有库在运行时类路径下是可用的,并且都包含在可执行的JAR文件中。
3、在JAR中生成一个manifest文件,将引导类声明为可执行JAR的主类。

编写Spring应用

Spring MVC

Spring MVC是Spring自带的Web框架,它的核心是控制器controller的理念。控制器是处理请求,并以某种方式进行信息响应的类。

Spring Boot Dev Tools

Dev Tools 提供了一些开发期的工具,包括:
1、代码变更后自动重启。
2、浏览器自动刷新。
3、自动禁用模版缓存。
4、内置H2控制台。

第二章 开发Web应用

在SpringWeb引用中,获取和处理数据是控制器的任务,将数据渲染到HTML中并在浏览器中展现是视图的任务。

展现信息

创建Web应用的步骤:
1、构建领域类,即实体。
2、创建控制器类。
3、设计视图:JSP,Thymeleaf,FreeMarker,Mustache、Groovy的模板。静态内容要放在/static目录下。

处理表单提交

校验表单输入

Spring支持Java的Bean Validation API,也被称为JSR-303。

第三章 使用数据

使用JDBC读取和写入数据

Spring对JDBC的支持要归功于JdbcTemplate类。
可以将表结构创建语句schema.sql,数据文件data.sql文件放在src/main/resources文件夹下,Spring boot会自动加载。

使用JPA读取和写入数据

Spring Data包含多个子项目。Spring Data JPA基于关系型数据库进行JPA持久化。

DSL

Spring Data定义了一组小型的领域特定语言Domain-Specific Language,通过方法签名来定义查询,但复杂的查询还是建议使用@Query注解来实现。

第四章 保护Spring

启用Spring Security

只需要将Spring Security添加到项目的构建文件中,我们就得到了以下特性:
1、所有的HTTP请求路径都需要认证
2、不需要特定的角色和权限
3、没有登录页面。
4、认证过程是通过HTTP basic认证对话框实现的。
5、系统只有一个用户,用户名为user。

Spring Security配置

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
     protected void configure(AuthenticationManagerBuiler auth){

     }
    @Override
     protected void configure(HttpSecurity http) throw Exception{
         //web级别安全性定义
         //1、配置自定义的登录页面。
        // 2、预防跨站请求伪造。
        // 3、支持用户退出应用。
     }

}

已经认证的用户信息可以通过SecurityContext对象来获取。

第五章 使用配置属性

Spring有两种不同的配置:
1、Bean装配。
2、属性注入。Spring的环境抽象是各种配置属性的一站式服务。Spring环境会拉去多个属性源,例如JVM系统属性,操作系统环境变量属性,命令行参数,应用属性配置文件,并将其聚合到一个源,然后注入到Spring的bean中。
默认情况下,Spring Boot通过Logback配置日志。
Spring提供了@ConfigurationProperties注解来支持配置属性的注入,还可以使用profile进行配置。

你可能感兴趣的:(Spring实战第五版读书笔记——(一))