SpringBoot
文章平均质量分 74
甜瓜瓜哥
这个作者很懒,什么都没留下…
展开
-
如何实现一个最基本的API接口
GetMapping 是 Spring MVC 中的一个注解,它是 @RequestMapping 注解的缩写形式,专门用于处理 HTTP GET 请求。在传统的 Spring MVC 应用中,@Controller 用于处理 HTTP 请求,并通过视图解析器解析返回的字符串(通常是视图名称),最终呈现给用户的是一个HTML页面。1)指定Spring Boot应用程序的父项目,本段代码的作用是将当前项目设置为Spring Boot应用程序,并继承Spring Boot的父项目,以便共享配置和依赖管理。原创 2023-12-02 20:57:17 · 524 阅读 · 0 评论 -
如何理解SpringBoot中的Starter
Start组件是SpringBoot里面的四大核心功能特性之一,除此之外,SpringBoot里面还有自动装配以及Actuator监控等这样一些特性。SpringBoot里面的这些特性都是为了让开发者在开发基于Spring生态下的企业级应用的时候,只需要去关心业务逻辑,减少对配置和外部环境的依赖。原创 2023-11-24 21:33:39 · 147 阅读 · 0 评论 -
JOOQ框架初始化时间过长的可能原因
JOOQ是Java对象关系映射工具。原创 2023-11-24 10:06:45 · 55 阅读 · 0 评论 -
SpringBoot和传统的Spring相比有什么区别
对于个人而言,更加倾向于使用SpringBoot,因为它能让开发者更加专注于业务代码的编写,而不需要花费大量时间在配置和环境搭建上。参考资料【Java面试】Spring Boot和传统的Spring有什么区别,你更倾向使用哪一个?原创 2023-11-22 22:20:10 · 45 阅读 · 0 评论 -
如何提高SpringBoot的启动速度
我们改成这样的注解,指定需要注入的类,就能够起到一定的优化的效果。用默认的启动注解会去扫描并判断很多不需要自动注入的类。在于不要去扫描一些没用的bean。原创 2023-09-15 12:19:36 · 236 阅读 · 0 评论 -
SpringBoot的启动过程
它其实也是通过发布一个事件来进行读取的,例如这里发布的是ApplicationEnvironmentPreparedEvent,在这个事件中就会读取我们的5个位置的全局配置文件,包括我们的类路径下面的,还有类路径下面config文件夹的等等等。它就是在我们IOC加载过程去调用bean工厂的后置处理器,去解析的我们的这些个注解。创建了一个spring的容器,也就是我们的所谓的spring上下文,它会根据你不同的一个web应用类型,如果你是SERVLET的还是REACTIVE的。读取环境变量和配置信息等。原创 2023-09-07 13:55:47 · 94 阅读 · 0 评论 -
SpringBoot启动过程中的步骤
SpringBoot的启动过程是一个复杂的过程,涉及多个阶段和组件的协同工作。原创 2023-09-07 13:07:04 · 107 阅读 · 0 评论 -
SpringBoot项目的启动方式
Spring面试必问:SpringBoot项目的启动方式原创 2023-09-07 11:31:47 · 37 阅读 · 0 评论 -
提升springboot应用速度的方法
当加载类的时候,我们通过类加载器去遍历JAR包,找到对应的class文件进行加载,然后验证准备解析,初始化、实例化对象,JAR INDEX实际上是一个很古老的技术,就是用来解决在加载类的时候,遍历JAR性能的问题。简单的来说,可以认为HeapArchive是在类初始化的时候,通过内存映射持久化了一些static字段,避免调用类初始化器,提前拿到初始化好的类,提高启动速度。如果能够通过类型com c,立刻推断出具体在哪个JAR包,就可以避免JAR遍历的过程,不过对于现在项目来说,Jar Index很难应用。原创 2023-09-07 11:24:53 · 550 阅读 · 2 评论 -
SpringBoot如何优化启动速度
spring-graalvm-native是springboot3非常重大的一个特性,支持使用GraalVM将SpringBoot的应用程序编译成本地可执行的镜像文件,可以显著提升启动速度、峰值性能以及减少内存使用。由于Java语言的特性及Spring Boot的一些实现方式,决定了即便是开启了G1/ZGC的去使用内存及时归还操作系统,Spring Boot的内存占用仍然远大于Golang这种编译型语言。到这启动速度应该算是优化的比较极致了,但是内存占用依然是问题。原创 2023-09-06 15:05:52 · 2268 阅读 · 0 评论 -
SpringBoot启动优化实践
分阶段排查代码原创 2023-09-05 17:38:42 · 74 阅读 · 0 评论 -
使用SpringBoot在Tomcat内部部署了什么
需要注意的是,SpringBoot应用程序也可以打包为可执行的JAR(Java Archive)文件,并直接运行,而无需将其部署到Tomcat。当使用Spring Boot应用程序部署在Tomcat内部时,Tomcat实际上部署了Spring Boot应用程序的WAR(Web Archive)文件。但是,如果选择将SpringBoot应用程序部署到外部的Tomcat服务器中,需要将其打包为WAR文件,并按照上述步骤进行部署。一旦将WAR文件放置在该目录下,Tomcat就会自动检测并部署应用程序。原创 2023-07-26 12:06:54 · 77 阅读 · 0 评论 -
如何开启SpringBoot的事务
如果项目中使用了多个数据源或需要使用特定的事务管理器配置,那么@EnableTransactionManagement注解就很有用。我们可以通过这个注解来配置自定义的事务管理器,并与数据源进行关联。原创 2023-07-22 16:48:58 · 4265 阅读 · 0 评论 -
SpringBoot内置Tomcat启动原理
该自动配置类通过@Import导入了可用(通过@ConditionalOnClass)判断决定使用哪一个)的一个Web容器工厂(默认Tomcat)。在内嵌Tomcat类中配置了一个TomcatServletWebServerFactory的Bean(Web容器工厂)它会在SpringBoot启动时加载ioc容器(refresh)OnRefresh创建内嵌的Tomcat并启动。也是通过自动配置类注册进来的:注册了DispatcherServlet。servlet容器自动配置类。原创 2023-07-22 16:00:46 · 710 阅读 · 0 评论 -
SpringBoot内置的服务器
Tomcat是一个流行的开源Servlet容器和Web服务器。Spring Boot默认使用Tomcat作为内置服务器,如果你不指定其他服务器,Spring Boot将自动使用Tomcat。例如,如果你想使用Jetty作为内置服务器,可以将Tomcat依赖替换为Jetty依赖。请注意,不同的服务器可能会有不同的性能和特性,因此在选择时要根据项目的实际需求进行权衡。默认情况下,Spring Boot使用Tomcat作为内置服务器,如果你想使用其他服务器,可以通过修改pom.xml文件中的依赖来实现。原创 2023-07-20 17:19:21 · 1441 阅读 · 0 评论 -
SpringBoot怎么改打包格式
现在,你的Spring Boot应用就以WAR格式打包了,可以将该WAR文件部署到Servlet容器中,比如Tomcat。请注意,部署WAR格式的Spring Boot应用可能需要适应一些不同的配置,与JAR格式的应用有所不同。在Spring Boot中,默认的打包格式是JAR(Java ARchive)。不过,你也可以根据项目的需求选择其他的打包格式,如WAR(Web ARchive)或者WAR-over-JAR。这是为了将Spring Boot应用部署到外部的Servlet容器,比如Tomcat。原创 2023-07-20 17:11:45 · 289 阅读 · 0 评论 -
如何弄懂一个开源项目
service层是第二个要看的。repository里面的是和数据库相关的接口操作。entity中是和数据库强相关的。有pom.xml的就是maven管理的,有build.gradle的是gradile管理的。建议从controller层看起,controller是前端和后端交互的一个入口。handler中是一些额外的处理器。主要是开发者的一些辅助的工具。security是安全类,登录时的认证,例如验证用户名密码这些。filter是过滤器,例如跨域的过滤器、日志过滤等等。utils里面是各种各样的工具。原创 2023-06-23 16:32:14 · 103 阅读 · 0 评论 -
YAML简介
yaml是一种数据格式(json),支持注释。换行,多行字符串,裸字符串等。原创 2023-06-16 15:47:21 · 146 阅读 · 0 评论 -
SpringBoot怎样添加一个LogBack日志
我们可以在我们的yml文件里面进行指定,如果这个是开发环境,咱们就在配置文件里面指定为开发环境。如果他是开发环境,咱们就打印开发环境的格式,如果他是正式环境,咱们就打印正式环境的格式。比如我们有多个环境,一个是开发环境一个是正式环境,我们可以对不同的环境进行不同日志格式的输出。它一共打出了三行日志,这里面有两个级别的日志没有打印出来,一个是debug,一个是trace。我们要将相对应的日志输出到日志文件里面去,这个是它的路径。现在指定为正式环境,正式环境的话应该打印的是正式环境的,格式就是用箭头来衔接。原创 2023-05-30 23:23:46 · 512 阅读 · 0 评论 -
SpringBoot是一个怎样的框架
Spring是Java EE领域的企业级开发框架,能帮助企业实现复杂的网站后端服务。原创 2023-05-30 21:17:53 · 73 阅读 · 0 评论 -
SpringBoot的启动机制
Import(AutoConfigurationImportSelector.class)包含一个selectImports()方法,该方法包括getAutoConfigurationEntry()方法,该方法读取classpath下的META-INF/spring.factories文件的配置,将相应的bean的配置项读取出来,通过反射机制实例化为配置文件,然后注入spring容器。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类。原创 2023-05-18 11:08:52 · 121 阅读 · 0 评论 -
SpringBoot自动装配原理
其实自动装配的思想在springframework3.x版本里面的@Enable注解,就已经有了实现的一个雏形,@Enable注解是一个模块驱动的意思,就是说我们只要增加@Enable注解,就可以自动打开某个功能,而不需要针对这个功能去做Bean的配置,@Enable注解的底层是帮我们自动完成这样的一个模块相关bean的注入的。SpringBoot是约定优于配置这一理念下的一个产物,所以在很多的地方都会看到这一类的思想,它的出现让开发人员。简单来说,就是自动去把第三方组件的Bean装载到IOC容器里面。原创 2023-04-24 00:06:46 · 440 阅读 · 0 评论 -
Spring、SpringMVC和SpringBoot的区别以及SpringBoot相对于Spring的改进
Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件。并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC)和面向切面(AOP)。简单的说就是一个分层的轻量级开源框架。原创 2023-04-13 11:18:42 · 298 阅读 · 0 评论 -
@GetMapping、@PostMapping和@RequestMapping的区别
GetMapping是@RequestMapping的一个延伸,目的是为了提高项目的清晰度。@RequestMapping是加在类上面的,所以@RequestMapping是具有类属性的,可以进行GET,POST,PUT或者其他的注解中具有的请求方法。和@RequestMapping的区别与上同理。:@RequestBody是获取请求body中的数据,常用于搭配@PostMapping请求来提交对象数据。@RequestParam是用在方法的参数前面,获取请求中表单类型的key=value格式的数据。原创 2023-04-05 10:46:15 · 3195 阅读 · 0 评论 -
写接口的步骤
entity类是数据库中数据的映射,数据库的值与之完全对应。mapper类是数据库的操作相关的,select等等。controller类是做展示的,和前端交互。service类是处理业务逻辑的。原创 2023-04-05 09:31:52 · 876 阅读 · 0 评论 -
Vue项目登录流程和token的存放位置
请求后端的接口,把手机号跟验证码都发给它,它给我们返回了结果,我们根据结果里的token,把它存起来。token需要存储到状态管理里面去。这样做的目的是为了做一个变量的判断。变量是表示登录状态,如果状态有变化,那么界面上的内容也会跟着改变。然后就是存在cookie当中,给它设定好过期时间。token需要存到cookie里面去。原创 2023-04-04 14:33:24 · 1539 阅读 · 0 评论 -
@Controller和@RestController的区别
Controller是SpringBoot的基本组件,也是MVC结构的组成部分,其作用是将用户提交来的请求通过URL匹配分发给不同的接收器(具体的Controller),该接收器会对其进行相应处理,然后返回处理结果。@Controller和@ResponseBody的一个组合,当我们使用@RestController注解定义一个类的时候,这个类中方法传递给前端的数据会自动转换为json类型。需要注意的是。原创 2023-03-28 20:45:55 · 773 阅读 · 0 评论 -
SpringBoot中常用注解
含义:byType方式完成自动装配,把配置好的Bean拿来用,完成属性、方法的组装。当类配置了@Transactional, 方法也配置了@Transactional, 方法的事务会覆盖类的事务配置信息。类级别的注解,这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。用在方法的参数前面,获取请求中表单类型的key=value格式的数据。通用注解,泛指组件,当组件不好归类的时候,我们可以使用这个注解进行。用于服务层,经常标注到Service类上,需要注入DAO层。原创 2023-03-27 10:25:41 · 958 阅读 · 0 评论 -
如何解决跨域问题
跨域请求,就是说浏览器在执行脚本文件的ajax请求时,脚本文件所在的服务地址和请求的服务地址不一样。说白了就是ip、网络协议、端口都一样的时候,就是同一个域,否则就是跨域。原创 2023-03-22 17:26:20 · 380 阅读 · 0 评论 -
SpringBoot的自动配置
英文是它是指基于你引入的依赖Jar包,对SpringBoot应用进行自动配置它为SpringBoot框架的"开箱即用"提供了基础支撑英文广的“配置类”:被注解@Component直接或间接修饰的某个类,即我们常说的Spring组件,其中包括了@Configuration类。狭义的“配置类”:特指被注解@Configuration所修饰的某个类,又称为@Configuration类。SpringFactories机制Java SPI机制的延伸和扩展。原创 2023-03-20 11:38:10 · 4127 阅读 · 3 评论