Springboot
文章
01 内容简介
内容简介 springboot本就是一个专门用来配置的框架,用来整合各种各样的配置。所以主要内容也是与配置相关。 配置文件 web开发 数据访问 但愿测试 指标监控 核心原理。。。 参考文档https://blog.csdn.net/lin1214000999/article/details/105468338/ 1 springboot背景springboot + springcloud 微服务 架构风格 小型服务,灵活拆分 自动部署 去中心化、服务治理 分布式 远程调用rpc——http 服务发现——网关和注册中心 负载均衡和任务调度 服务容错——流量控制和熔断 配置管理——配置中心 服务监控——RMS 链路追踪——log 日志管理——云图log 云原生利用云技术构建、部署、运维应用程序的技术。 服务自愈 弹性伸缩 服务隔离 自动化部署机制 灰度发布,逐渐替代旧版本 流量治理 2 springboot概述基本概念Spring Boot 是基于 Spring 框架基础上推出的一个全新的框架, 旨在让开发者可以轻松地创建一个可独立运行的,生产级别的应用程序。利...
02 创建项目
1 创建项目1.1. maven设置 配置maven的Aliyun镜像和jdk版本 1234567891011121314151617181920212223<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors> <profiles> <profile> <id>jdk-1.8</id> <activation> ...
03 Bean配置文件
Bean配置文件 bean配置文件:spring配置bean的文件。 java Bean配置文件,通过@Configuration加载 XML Bean配置文件,xml定义的配置文件 属性配置文件:spring配置key-value的文件 1 注解说明注解体系 元注解@Rentention @Docemented,@Inherited,@Target JDK标准注解 Spring标准注解@Bean @Component @Serivce,@Controller,@Configuration,@Import,@Autowire springboot补充注解 导入容器spring导入容器主要有三种方式 标准组件:@Compoent、@Repository、@Service、@Controller四种类型的组件。通过@ComponentScan定义的扫描路径扫描后,导入到Spring容器中。 自动配置:通过@Configuration定义的配置类。通过@EnableAutoConfiguration注解定义扫描 主类包路径下的所有配置类 和 SpringFactories...
04 属性配置文件
属性配置文件 bean配置文件:spring配置bean的文件。 java配置文件,通过@Configuration加载 原生配置文件,xml定义的配置文件 属性配置文件:spring配置key-value的文件 1 properties配置文件properties默认配置文件用于配置容器端口名、数据库链接信息、日志级别。pom是项目编程的配置,properties是软件部署的配置。 移除特殊字符、全小写。在环境变量中通过小写转换与.替换_来映射配置文件中的内容,比如:环境变量SPRING_JPA_DATABASEPLATFORM=mysql的配置会产生与在配置文件中设置spring.jpa.databaseplatform=mysql一样的效果。 1src/main/resources/application.properties 1234environments.dev.url=http://dev.bar.comenvironments.dev.name=Developer Setupenvironments.prod.url=http://...
05 自动配置原理
1 自动配置加载的过程加载过程 @SpringBootConfiguration,就是一个@Configuration配置类。定义这是一个配置类。 @ComponentScan指定包扫描。扫描@Controller、@Component、@Repository、@Service注解定义的组件,控制翻转放入到容器当中 @EnableAutoConfiguration @AutoConfigurationPackage自动配置包。 @Import(AutoConfigurationPackages.Register.class)利用register,将指定的包下的所有配置类注册到容器中。所以默认包路径是Main程序所在的包。将该包下的所有配置类放入到容器当中。包括@SpringBootConfiguration注解的启动类,这也是系统加载的第一个Configuration组件,放入到容器当中。 @Import(AutoConfigurationImportSelect.class)获取所有导入到容器中的配置类。利用Spring工厂加载器,从spring-boot-a...
06 web开发1-请求映射
web开发 web开发 关键 1 静态资源访问 静态资源访问 欢迎页和图表 自动加载原理 2 请求映射处理 请求映射过程 请求映射原理 请求处理的过程(类层侧结构) 3 请求参数处理 注解请求参数 传入ServletAPI 复杂参数 自定义对象 自定义数据转换器 4 响应数据处理 响应数据 自定义数据转换器 自定义内容协商器 5 视图解析与模板引擎 服务端模板渲染 视图解析原理 关键spring到处都是这种设计模式,设置多个不同的处理器,然后通过遍历循环找到支持当前类型的处理器,如果存在效率问题,则直接将当前条件对应的处理器缓存下来。这也是spring底层提供的大量扩展点。使用到的地方包括: 映射处理器*MappingHandler(找到不同的controller处理请求) 参数解析器*ParamResolver 参数类型转换器*Convertor 返回值处理器*ResultProcessor 返回值消息转换器*MessageConvertor 视图解析器ViewResolver 错误异常处理HandlerExceptionResolvers...
06 web开发2-拦截器
拦截器1 Servlet中的FilterServlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。 Filter有如下几个用处。 在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest。 根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。 在HttpServletResponse到达客户端之前,拦截HttpServletResponse。 根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。 Filter有如下几个种类。 用户授权的Filter:Filter负责检查用户请求,根据请求过滤用户非法请求。 日志Filter:详细记录某些特殊的用户请求。 负责解码的Filter:包括对非标准编码的请求解码。 能改变XML内容的XSLT Filter等。 Filter可以负责拦截多个请求或响应;一个请求或响应也...
06 web开发3-文件上传
文件上传 设置文件上传的表单 1234<form method="post" action="/upload" enctype="multipart/form-data"> <input type="file" name="file"><br> <input type="submit" value="提交"></form> 在服务端接收文件上传的参数。 1234567891011121314151617181920212223242526272829303132333435/** * MultipartFile 自动封装上传过来的文件 * @param email * @param username * @param headerImg * @param photos * @return */@PostMapping("/upload")publ...
06 web开发4-异常处理
1 机制1、默认规则 默认情况下,Spring Boot提供/error处理所有错误的映射 对于机器客户端,它将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。对于浏览器客户端,响应一个“ whitelabel”错误视图,以HTML格式呈现相同的数据 要对其进行自定义,添加View解析为error 要完全替换默认行为,可以实现 ErrorController 并注册该类型的Bean定义,或添加ErrorAttributes类型的组件以使用现有机制但替换其内容。 error/下的4xx,5xx页面会被自动解析; 2、定制错误处理逻辑 自定义错误页 error/404.html error/5xx.html;有精确的错误状态码页面就匹配精确,没有就找 4xx.html;如果都没有就触发白页。抛出异常给Tomcat捕获异常forward到error视图进行处理,由BasicErrorController处理(springboot底层自动注册的error视图) @ControllerAdvice+@Excep...
06 Web开发5-原生组件
0 概述使用的标准方法 1234@ServletComponentScan(basePackages = "com.atguigu.admin") :指定原生Servlet组件都放在那里@WebServlet(urlPatterns = "/my"):效果:直接响应,没有经过Spring的拦截器?@WebFilter(urlPatterns={"/css/*","/images/*"})@WebListener WebServlet1234567891011@WebServlet(urlPatterns = "/path2/*")public class MyServlet extends HttpServlet { @Override protected void doGet (HttpServletRequest req, HttpServletResponse resp) throws ServletException...














