
Spring Boot 从零单排
文章平均质量分 89
Spring Boot 从零单排,Spring Boot 教程,Spring Boot 入门教程,Spring Boot 从入门到精通
程序员null
微信公众号:wbnull
Github:https://github.com/dkbnull
Gitee:https://gitee.com/dkbnull
展开
-
深入理解Spring两大特性:IoC和AOP
众所周知,Spring拥有两大特性:IoC和AOP。。Spring核心容器的主要组件是Bean工厂(BeanFactory),Bean工厂使用控制反转(IoC)模式来降低程序代码之间的耦合度,并提供了面向切面编程(AOP)的实现。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面编程(AOP)的容器框架。下面,我们简要说明下这两大特性。原创 2019-02-14 00:31:41 · 97541 阅读 · 21 评论 -
Windows&Linux环境下Spring Boot启动和关闭脚本
如果我们Spring Boot服务直接部署在Windows或Linux环境下,如果我们启动或关闭服务,需要频繁手敲命令,很不方便。此时,我们可以编写启动脚本来对服务进行控制。原创 2024-05-26 23:30:23 · 587 阅读 · 0 评论 -
Spring Boot支持发送邮件
通过Spring Boot整合邮件任务,支持发送邮件,可以实现服务故障时向指定邮箱发送邮件。原创 2024-05-12 21:42:02 · 470 阅读 · 1 评论 -
Spring Boot跨域问题解决
跨域问题本质上是浏览器的行为,它的初衷是为了保证用户的访问安全,防止被恶意网站窃取数据。因此解决跨域问题就只是需要告诉浏览器这是一个安全的请求就可以了,告诉浏览器“我是自己人”。缺点:只能实现局部跨域,当一个项目中存在多个类时,需要给所有类上都添加此注解,比较麻烦。启动服务,访问页面,点击登录按钮,接口访问成功。那怎么告诉浏览器这是一个安全的请求呢?,点击登录按钮,如下所示,出现跨域问题。通常跨域问题使用以下6个方法解决。启动服务,然后直接本地双击打开。实现方式同3.5,不再赘述。优点:实现跨域非常简单。原创 2024-04-28 23:15:25 · 1434 阅读 · 0 评论 -
Spring Boot整合RabbitMQ
当消息在一个队列中变成死信(dead message)之后,它能被重新发送到另一个交换机中,这个交换机就是DLX ,绑定DLX的队列就是死信队列。一般在生产中,先启动消费者服务,再启动生产者服务,因此我们通常把配置类放在消费者服务中,否则可能导致无队列监听而服务启动失败或报错。DLX也是一个正常的交换机,和一般的交换机没有区别,它能在任何的队列上被指定,实际上就是设置某一个队列的属性。启动测试类,执行成功,查看RabbitMQ Web页面,成功绑定,且各存在一条消息。原创 2024-04-20 12:42:27 · 1759 阅读 · 1 评论 -
Spring Boot整合Elasticsearch
引入成功后,这里注意检查引入的jar包版本号,尽量保证与elasticsearch版本号一致,否则可能会出现莫名奇怪的问题。如图所示,程序引入的是7.17.15,但是我们使用的elasticsearch版本是7.17.18,所以这里做下修改。重启elasticsearch、elasticsearch-head,刷新页面,连接成功。查看elasticsearch-head,文档创建成功,能够成功查询到。运行,成功查询文档信息,打印信息如下。运行,成功创建文档,打印信息如下。运行,成功打印查询的索引信息。原创 2024-04-14 16:58:14 · 1871 阅读 · 1 评论 -
Spring Boot整合Dubbo+ZooKeeper
Autowired**注解用法是类似的,只是@Autowired注解是自动装配本地的服务,@DubboReference是远程引用服务提供者的服务。要使用服务提供者提供的服务,需要先从注册中心中获取服务,获取服务使用**@DubboReference**注解。使用**@DubboService**后,可以被扫描到,在项目已启动就自动注册到注册中心。服务,服务启动成功后,可以在Dubbo-Admin中看到消费者和提供者的服务调用关系。启动服务,服务启动成功后,可以在Dubbo-Admin中看到注册的服务。原创 2024-04-10 23:41:41 · 1117 阅读 · 0 评论 -
Spring Boot引入外部jar包并打包
但这仅仅是引入到项目中,打包的时候不会将该外部jar打包到spring boot的jar/war包中。新建 application.yml和Spring Boot启动类。浏览器访问127.0.0.1:8090/login,返回结果如下。浏览器访问127.0.0.1:8090/login,返回结果如下。测试通过,项目已经成功引入外部jar,并可使用其中的方法。maven打包,使用压缩方式打开jar包,将需要引入的jar放置到项目中。使用脚本启动服务,启动成功。测试通过,项目已经成功打包。原创 2024-04-06 23:29:09 · 784 阅读 · 0 评论 -
Spring Boot页面国际化
上面我们正常返回了中英文的用户名或密码错误,现在升级一下,返回类似 xxx用户名或密码错误。q:用户对该范围指定的语言的偏好,为空则默认为1,范围[0, 1],值越大,权重越大。中文配置文件,此时,系统会自动识别到国际化配置,将文件合并目录并切换到国际化视图。根据传入的地区信息,返回对应语言的提示信息,且正确组装传入的参数,测试通过。配置,添加完成后,页面上会出现3个录入框,可配置不同语言的值。根据传入的地区信息,返回对应语言的提示信息,测试通过。视图,点击**+**,即可添加配置。原创 2024-03-31 16:28:10 · 951 阅读 · 0 评论 -
Spring Boot整合Redis
Bean//JSON序列化配置//String序列化配置//key采用String的序列化方式//hash的key采用String的序列化方式//value序列化方式采用jackson//hash的value序列化方式采用jackson//开启事务@Component@Autowired/*** 指定缓存失效时间* @param key 键* @param timeout 时间(秒)* @return*/try {/**原创 2024-03-27 00:46:16 · 1726 阅读 · 0 评论 -
Spring Boot整合Spring Security
WebSecurityConfigurerAdapter 自定义Security策略AuthenticationManagerBuilder 自定义认证策略@EnableWebSecurity 开启WebSecurity模式@Override//密码加密//配置用户名、密码,该配置方式下,用户名和密码保存在内存中//密码加密方式这里我们就直接固定写死用户名和密码,实际生产中可以从数据库中获取@Service@Override//设置角色,角色的概念后续介绍。原创 2024-03-21 21:23:04 · 1708 阅读 · 0 评论 -
Spring Boot整合MyBatis Plus配置多数据源
在文章中,展示了Spring Boot整合Mybatis配置多数据源的方法。那么,如果使用MyBatis Plus,如何配置多数据源呢?原创 2024-03-10 23:06:18 · 1559 阅读 · 0 评论 -
Spring Boot整合MyBatis配置多数据源
多数据源即动态数据源,随着项目开发逐渐扩大,单个数据源、单一数据源已经无法满足需求项目的支撑需求。或是单一数据库无法承载大数据量的访问,需使用多个数据库进行数据的读写分离;或是某些特殊业务需求,需操作不同的数据库。在文章中,展示了Spring Boot整合MyBatis连接数据库的方法,基于此,Spring Boot 整合MyBatis 配置多数据源。原创 2024-03-03 16:47:51 · 2735 阅读 · 0 评论 -
Spring Boot整合MyBatis Plus连接数据库
在这篇文章中,我们已经可以使用Spring Boot整合MyBatis来连接数据库,但随着使用,我们发现,MyBatis还是稍微有点复杂,那有没有更加简单的方式来操作数据库呢,我们惊奇的发现了MyBatis Plus。原创 2024-02-27 20:37:04 · 2159 阅读 · 0 评论 -
Spring Boot整合WebSocket实现实时消息推送
Spring Boot项目在启动初始化时,会初始化非用户连接的WebSocket服务,为其注入Service,此时使用@Autowired注入的Service不为null,即被成功注入。当新用户连接时,系统又会创建一个新的WebSocket对象,Spring就不会给第二个 WebSocket对象注入Service了,所以导致只要是用户连接创建的WebSocket 对象,都不能再注入了。新增定时任务,定时给连接到WebSocket的终端发送消息,超过指定次数未回应的终端视为离线,主动关闭连接。原创 2022-07-02 21:34:23 · 8095 阅读 · 0 评论 -
Spring Boot 整合Logback记录日志
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。原创 2019-07-10 22:37:21 · 1345 阅读 · 1 评论 -
Spring Boot实现文件上传与下载
上面接口是要下载logs文件夹下日志文件,以log_20190218.log日志文件为例,浏览器直接访问 http://127.0.0.1:8090/springbootdemo/log/download/log_20190218.log 即可完成下载。上面我们上传文件的客户端为HTML页面,但我们实际生产中未必是WebAPP,这时我们可以通过模拟发送浏览器HTTP请求来实现上传文件。点击选择文件打开文件选择页面,选中需要上传的文件后,点击提交,返回如下则为文件上传成功。点击提交,返回如下则为上传成功。原创 2019-03-27 23:51:23 · 70123 阅读 · 18 评论 -
Spring Boot整合Swagger2
即可进入Api文档页面,博主这里地址为:http://localhost:8090/springbootdemo/swagger-ui.html。按钮可以进行测试,其中红框输入请求参数,输入后点击。展开某个接口后可以看到具体求参数与返回参数。原创 2019-03-10 17:25:27 · 1209 阅读 · 1 评论 -
Spring Boot使用Schedule实现定时任务
)控制的每10秒执行一次的定时任务,是每10秒整执行一次,即一分钟内,如果当前秒数能够整除10,则执行定时任务,或理解为每分钟0秒开始执行,10秒后执行下一次,执行完一分钟后,再从0秒开始。对于上面那些简单的定时任务,定时任务的corn表达式写死在代码里,如果要改动表达式,需要修改代码,重新打包发布,比较麻烦。我们可以看到,对于cron表达式 来说,如果业务代码执行时间小于定时任务间隔时间,那么定时任务每10秒执行一次,且不受业务代码影响,无论业务代码执行多久,定时任务都是10秒执行一次;原创 2019-02-19 00:46:42 · 17823 阅读 · 3 评论 -
Spring Boot整合MyBatis连接数据库
1、 namespace 一定要对应自己dao包所在的包路径,对应我们需要匹配的dao层类。这里,如果使用的 mysql-connector-java 是5.X版本的话,driver-class-name 可以直接省略使用默认,或者配置为 com.mysql.jdbc.Driver。这里我们运行成功后,同一个表,不要运行多次,否则mapper映射文件中会生成多次的代码。原创 2019-02-14 16:15:22 · 32629 阅读 · 6 评论 -
Spring Boot自定义log4j日志输出
然后我们将log4j.properties日志输出appender设为GlobalRollingFileAppender ,即log4j.appender.logInfo=cn.wbnull.springbootdemo.boot.GlobalRollingFileAppender。8、日志记录),但使用默认Appender记录日志时,有时并不能满足我们的需求,这时我们可以自定义log4j日志输出格式。下面我们实现按日期记录日志,日志达到指定大小后重命名保存为新文件。原创 2018-11-26 23:08:17 · 3013 阅读 · 1 评论 -
Spring Boot使用AOP实现拦截器
新建GlobalException异常类,用于捕捉全局异常。super();@Override@Override自定义AOP,对接口入参进行非空校验和验签;并对接口返回参数进行签名。@Aspect@Component/*** 声明一个切入点,范围为controller包下所有的类* 注:作为切入点签名的方法必须返回void类型*//*** 前置通知:在某连接点之前执行的通知,但这个通知不能阻止连接点之前的执行流程(除非它抛出一个异常)原创 2018-09-26 00:32:41 · 11330 阅读 · 1 评论 -
Spring Boot读取properties配置文件中的数据
在实际项目中,当项目需要注入的变量值很多时,上述所述的两种方法工作量会变得比较大,这时候我们通常使用基于类型安全的配置方式,将properties属性和一个Bean关联在一起,即使用注解@ConfigurationProperties读取配置文件数据。部分放到一个单独的类A中进行读取,然后在类B中调用,则要把类A增加@Component注解,并在类B中使用@Autowired自动装配类A,代码如下。读取properties配置文件时,默认读取的是application.properties。原创 2018-08-23 00:09:07 · 183504 阅读 · 30 评论 -
第一个Spring Boot程序
相信使用过Spring MVC框架的小伙伴,都感受过其繁琐的配置。过于细分的配置和与Servlet API的强耦合,使得无论开发还是部署都会费时费力,且容易出现问题。在此基础上,Spring Boot应运而生。使用Spring Boot可以让我们快速创建一个基于Spring框架的项目,而这个项目,只需要极少的配置。Spring Boot可以以jar包的形式独立运行,使用:java -jar xxx.jar 就可成功运行Spring Boot项目。原创 2018-08-18 18:30:18 · 1388 阅读 · 1 评论