SpringBoot
文章平均质量分 83
阿昌喜欢吃黄桃
这个作者很懒,什么都没留下…
展开
-
Day695.Spring Boot如何使用内嵌式的Tomcat和Jetty -深入拆解 Tomcat & Jetty
ServletContainerInitializer调用所有实现ServletContextInitializer接口类的方法。ServletContextInitializer是通过ServletContextInitializer类型依赖查找的,是Spring管理的。原创 2022-08-01 21:24:31 · 868 阅读 · 0 评论 -
阿昌教你看懂mybatisplus的SqlSessionFacotry的创建过程
前言前置版本:MybatisPlus3.0.5这几天阿昌又开始研究mybatisplus的内容,我就先开始研究mybatis在springboot的环境下,是如何进行类加载注入的。这里就记录下自己学习到的内容。感谢各位大佬的观看 •̀ㅂ•́)و!正文在一开始,对于看Springboot的内容,必然去找XXXXAutoConfiguration的自动配置类。那我们就去mybatisplus的源码,去找MybatisPlusAutoConfiguration那一来到这个类,我们必然看他头原创 2021-11-11 12:23:14 · 1607 阅读 · 1 评论 -
阿昌教你自定义注解验证Bean对象
前言在之前阿昌写过一篇 【Springboot的注解字段校验,并统一设置返回值 】的文章,讲了常见的一些注解,和自定义的报错返回处理器,没看过的可以去看一下。在Springboot中本身就可以通过大量的注解来实现对一些请求参数的校验。这里在做一点的补充,关于自定义注解,去校验MVC,Web请求中的数据校验正文接下来我们就通过自定义注解的方式,为大家介绍两个手机号 & 是否是日期。在此之前,都到这里了,你别问我注解是一个什么东西,这边建议您回炉一下 (≖‿≖1、自定义手机号校验自原创 2021-11-09 17:11:50 · 543 阅读 · 0 评论 -
阿昌教你解决Filter过滤器@Autowired注入调用为null的问题
在配置过滤器Filter的时候,使用到自己注入的Service类,但是会出现爆空指针的异常那肯定盲猜就是注入顺序的问题了,经过查阅:web应用启动的顺序是:listener->filter->servlet那就会发现我们自动注入的Service,此时还没有轮到他,但是在过滤器filter中已经使用了他;所以就爆了空指针;那阿昌这里提供一种解决方案:使用filter中的init()方法来在filter的生命周期中我们手动注入需要使用的Service;@Component@Slf4jp原创 2021-08-28 17:13:48 · 2533 阅读 · 2 评论 -
解决java获取访问用户的ip都是127.0.0.1
通过java代码去获取用户的访问ip,发现不管怎么获取都是127.0.0.1的ipJava代码/** * 阿昌 */public class IpAddressUtil { /** * 获取Ip地址 * @param request * @return */ public static String getIpAddress(HttpServletRequest request) { String ipAddress =原创 2021-08-28 16:55:37 · 4528 阅读 · 2 评论 -
Springboot-- 注解字段校验,并统一设置返回值
Springboot-- 注解字段校验,并统一设置返回值引包:import org.springframework.validation.annotation.Validated;<!--web--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></depe原创 2021-07-23 12:05:58 · 1432 阅读 · 1 评论 -
阿昌教你如何自定义Springboot项目的控制台打印的banner图案
如何自定义Springboot项目的控制台打印的banner图案有一些朋友可能对这个控制台打印出来的图案表示都不知道叫什么,他叫banner;其实就是在运行springboot项目时控制台打印出的图案,就是下面这个东西。 . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | |原创 2021-05-19 15:52:07 · 928 阅读 · 0 评论 -
Day157.启动原理解析 -SpringBoot2
启动原理解析SpringBoot启动原理Spring原理【Spring注解】、SpringMVC原理、自动配置原理、SpringBoot原理1、SpringBoot启动过程创建 SpringApplication保存一些信息。判定当前应用的类型。ClassUtils。Servletbootstrappers:初始启动引导器(List< Bootstrapper >):去spring.factories文件中找 org.springframework.boot.Bootst原创 2021-01-08 20:39:58 · 261 阅读 · 0 评论 -
Day157.高级特性 -SpringBoot2
高级特性一、Profile功能为了方便多环境适配,springboot简化了profile功能。1、application-profile功能默认配置文件 application.yaml;任何时候都会加载指定环境配置文件 application-{env}.yaml激活指定环境配置文件激活命令行激活:java -jar xxx.jar --spring.profiles.active=prod --person.name=haha修改配置文件的任意值,命原创 2021-01-08 18:01:42 · 211 阅读 · 0 评论 -
Day157.指标监控 -SpringBoot2
指标监控一、SpringBoot Actuator1、简介未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuat原创 2021-01-08 15:37:53 · 412 阅读 · 0 评论 -
Day157.单元测试 -SpringBoot2
单元测试一、JUnit5 的变化Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库作为最新版本的JUnit框架,JUnit5与之前版本的Junit框架有很大的不同。由三个不同子项目的几个不同模块组成。JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit VintageJUnit Platform: Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。原创 2021-01-08 12:50:43 · 816 阅读 · 0 评论 -
Day156.数据访问②-NoSQL -SpringBoot2
数据访问【2】NoSQLRedis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事原创 2021-01-07 19:35:28 · 204 阅读 · 1 评论 -
Day156.数据访问①-SQL -SpringBoot2
数据访问【一】SQL一、数据源的自动配置—HikariDataSource1、导入JDBC场景<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId></dependency>数据库驱动?为什么导入JDBC场景,官方不导入驱动?官方不知道原创 2021-01-07 14:55:18 · 287 阅读 · 2 评论 -
Day155.Web开发⑥-Web原生组件注入、嵌入式Servlet容器【内置服务器】、定制化原理【几种方式】 -SpringBoot2
Web开发【九】Web原生组件注入(Servlet、Filter、Listener)一、使用Servlet API@ServletComponentScan(basePackages = “com.achang.admin.servlet”):指定原生Servlet组件都放在哪里;在SpringBoot主程序上写@WebServlet(urlPatterns = “/myServlet”):效果:直接响应,没有经过Spring的拦截器?@WebFilter(urlPatterns={"/css/原创 2021-01-06 14:40:29 · 224 阅读 · 0 评论 -
Day155.Web开发⑤-拦截器、文件上传、异常处理 -SpringBoot2
Web开发【六】、拦截器一、HandlerInterceptor 接口/** * 登录检查 * 1、配置好拦截器要拦截哪些请求 * 2、把这些配置放在容器中 */@Slf4jpublic class LoginInterceptor implements HandlerInterceptor { /** * 目标方法执行之前 */ @Override public boolean preHandle(HttpServletRequest req原创 2021-01-06 11:17:48 · 319 阅读 · 0 评论 -
Day154.Web开发④-视图解析与模板引擎 -SpringBoot2
Web开发五、视图解析与模板引擎视图解析:SpringBoot默认不支持 JSP,需要引入第三方模板引擎技术实现页面渲染。一、视图解析1、视图解析原理流程①目标方法处理的过程中,所有数据都会被放在 ModelAndViewContainer 里面。包括数据和视图地址②方法的参数是一个自定义类型对象(从请求参数中确定的),把他重新放在 ModelAndViewContainer③任何目标方法执行完成以后都会返回 ModelAndView(**数据和视图地址)。④processDispatch原创 2021-01-05 15:43:44 · 285 阅读 · 0 评论 -
Day153.Web开发③-数据响应与内容协商 -SpringBoot2
Web开发四、数据响应与内容协商1、响应JSON1.1、jackson.jar+@ResponseBody <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>we原创 2021-01-04 19:24:13 · 342 阅读 · 0 评论 -
Day153.Web开发②-请求参数处理 -SpringBoot2
Web开发三、请求参数处理1、请求映射1.1、rest使用与原理@xxxMapping;Rest风格支持(使用HTTP请求方式动词来表示对资源的操作)以前:**/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户现在: /user *GET-*获取用户 *DELETE-*删除用户 *PUT-*修改用户 *POST-*保存用户核心Filter;HiddenHttpMethodF原创 2021-01-04 13:40:29 · 290 阅读 · 0 评论 -
Day152.Web开发①-自动配置概览、简单功能分析 -SpringBoot2
Web开发一、SpringMVC自动配置概览Spring Boot provides auto-configuration for Spring MVC that works well with most applications.(大多场景我们都无需自定义配置)The auto-configuration adds the following features on top of Spring’s defaults:Inclusion of ContentNegotiatingViewRes原创 2021-01-03 20:18:23 · 281 阅读 · 0 评论 -
Day151.yaml配置文件 -SpringBoot2
【一】配置文件一、文件类型1.1、properties同以前的properties用法1.2、yaml1.2.1、简介YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。非常适合用来做以数据为中心的配置文件1.2.2、基本语法key: value;kv之间有空格大小写敏感使用缩进表示层级关系缩进不原创 2021-01-02 17:29:23 · 215 阅读 · 0 评论 -
Day150.自动配置原理 -SpringBoot2
了解自动配置原理一、SpringBoot特点1.1、依赖管理父项目做依赖管理依赖管理<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.1</version></parent>他的父项目原创 2021-01-01 23:31:09 · 372 阅读 · 0 评论 -
Day149.SpringBoot2--HelloWorld -SpringBoot2
SpringBoot2入门之HelloWorld一、系统要求Java 8 & 兼容java14 .Maven 3.3+idea 2019.1.21.1、maven设置<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun&原创 2020-12-31 17:14:42 · 292 阅读 · 0 评论 -
Day149.Spring与SpringBoot -SpringBoot2
Spring与SpringBoot一、Spring能做什么1.1、Spring的能力1.2、Spring的生态覆盖了:web开发数据访问安全控制分布式消息服务移动开发批处理…1.3、Spring5重大升级1.3.1、响应式编程1.3.2、内部源码设计基于Java8的一些新特性,如:接口默认实现。重新设计源码架构。二、为什么用SpringBootSpring Boot makes it easy to create stand-alone, production原创 2020-12-31 17:12:01 · 679 阅读 · 0 评论