springBoot
文章平均质量分 53
springBoot
乐之者v
一生编程,快乐编程。
展开
-
统一异常处理@ControllerAdvice及参数校验@Validated
直接throws Exception,抛的异常太过宽泛,最好能抛出准确的异常,比如throws IOException之类。Controller层的参数通常都需要检验,经常会看到大量的判空,然后返回错误提示,比如"名字不能为空"之类的提示。但是,如果在Controller层进行大量的捕获异常,可能会出现大量的非常多的try catch代码块。阿里巴巴的java规范中有一条,“最外层的业务使用者,必须处理异常,将其转化为用户可以理解的内容。而且,异常一直向上抛,上层的类还是得处理这些异常。原创 2024-02-28 14:23:02 · 401 阅读 · 0 评论 -
实践理解 Transactional 是否生效
执行A方法,抛异常后,update_time 已更新为最新时间,更新成功,说明事务没有回滚。@Transactional 底层是通过 AOP 动态代理实现的,如果在同一个类中调用,就不是通过代理类调用了,事务不会生效。如果在 Service 服务层 catch异常,那么 @Transactional 会认为方法正常执行,没有异常,不会回滚。执行A方法,抛异常后,update_time 没有更新成功,说明事务回滚了。执行A方法,抛异常后,update_time 没有更新成功,说明事务回滚了。原创 2024-01-31 23:45:20 · 395 阅读 · 0 评论 -
SpringBoot配置Shiro时@RequiresRoles不起作用
在SpringBoot中配置Shiro,结果@RequiresRoles、@RequiresPermissions等注解都无效解决方法:在ShiroConfiguration中注入开启支持aop、代理的bean。具体如下:@Configurationpublic class ShiroConfiguration { /** * 开启shiro aop注解支持.否则...原创 2018-03-22 10:13:00 · 250 阅读 · 0 评论 -
SpringBoot简单理解
SpringBoot一、特点:1.默认大于配置,不需要大量配置文件,没有web.xml,拥有可运行的Application类.2.一般通过java代码配置,而尽量少使用xml配置。3.maven中拥有大量的初始依赖,可以直接使用。二、项目结构1.Application.java必须与Controller所在的包、Dao所在的包等包位于同一层,否则无法打开页面2.resource目录...原创 2018-01-04 17:14:00 · 14 阅读 · 0 评论 -
SpringBoot集成MybatisPlus
查询一条数据:getOne()。原生的selectOne()如果查到多条数据会报错,可以用getOne()代替,查到多条不报错。@TableId(type = IdType.ID_WORKER_STR) :ID_WORKER_STR 生成19位值字符串。@TableId(type = IdType.ID_WORKER) :ID_WORKER生成19位数字,对应类型Long。@TableField(fill = FieldFill.INSERT_UPDATE):插入和更新填充字段。原创 2023-10-31 22:25:36 · 154 阅读 · 0 评论 -
spring boot 启动错误:Could not resolve placeholder
在启动整个spring boot项目时,出现错误: Could not resolve placeholder原因:没有指定好配置文件,因为src/main/resources下有多个配置文件,例如application-dev.properties, boss.properties等。解决办法: 在application.properties中加入spring.profiles.a...原创 2018-09-29 16:41:00 · 407 阅读 · 0 评论 -
SpringBoot集成Redis
【代码】SpringBoot集成Redis。原创 2023-11-12 21:30:01 · 69 阅读 · 0 评论 -
SpringBoot进行单元测试
SpringBoot进行单元测试,需要在maven中加入以下依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> ...原创 2018-03-26 15:05:00 · 19 阅读 · 0 评论 -
SpringBoot2.X整合集成Dubbo
pom.xml中,服务消费者 dubbo-consumer 的依赖跟之前的类似,只是还要引入服务提供者dubbo-provider的依赖,这样才能调用其中的Service。如果还不清楚怎么新建SpringBoot项目,可以参考: https://www.cnblogs.com/expiator/p/15844275.html。dubbo有多种groupId,其中的org.apache.dubbo的版本,比较适合SpringBoot2.X,注解不会过期或者失效。原创 2023-11-12 21:50:18 · 255 阅读 · 0 评论 -
SpringBoot定时任务@Scheduled
SpringBoot定时任务主要由两个注解完成。@Scheduled加在方法上面。@EnableScheduling加在类上面。可以是Application类,也可以是@Component类,还可以是@Controller类等。cron表达式的用法如下:cron表达式依次表示 [秒] [分] [小时] [日] [月] [周] [年]原创 2023-11-12 21:57:44 · 493 阅读 · 0 评论 -
AOP打印日志参数和耗时
可以通过 AOP , 以 控制层 controller 所在的包为切点, 在 controller 的方法前后打印日志,这样就能统计出接口的耗时,还能打印入参,出参,减少重复地打印日志。如果想根据代码搜索日志,那么可以选中方法后,根据idea的快捷键 ctrl+alt+shift+c,复制方法,然后搜索日志。如果想根据日志搜索代码,那么复制日志打印出来的类和方法,然后可以用idea的快捷键 双shift ,快速搜索方法.如果想统计 dao 层的入参和耗时,也可以用类似的方法。原创 2023-11-16 22:18:26 · 324 阅读 · 0 评论 -
SpringBoot使用@PropertySource读取 properties 配置
ConfigurationProperties的 prefix 指定配置的前缀 my.config.test,比如 my.config.test.name, 就对应此类的 name属性。在resources文件夹下,新建一个文件 property-demo.properties,@Data 是 lombok 依赖包的注解,主要是用来表示 getter、 setter。classpath: 表示会到 target下面的class路径中查找找文件。@PropertySource 指定配置文件。原创 2023-11-12 22:02:32 · 342 阅读 · 0 评论 -
Spring/SpringBoot自定义线程池
在 Spring/SpringBoot 中,可以使用 @Configuration 和 @Bean 去设置线程池,用 @Value 去做线程池的参数配置。详情见:https://www.cnblogs.com/expiator/p/17140760.html。原创 2023-10-21 12:29:22 · 303 阅读 · 0 评论 -
@Configuratin配置Bean,对比xml配置
Spring的依赖注入可以基于xml配置,也可以基于注解配置,还可以基于java类配置。普通的bean类,只要标注了@Configuration注解,就可以为Spring容器提供Bean定义的信息。每一个标注了@Bean的类方法,相当于提供了Bean的定义信息,可以实现依赖注入。示例代码:@Configurationpublic class AppConf{ @Bean ...原创 2018-01-05 16:40:00 · 18 阅读 · 0 评论 -
@Configuration配置 @Bean
@Configuration 和 @Bean@Configuration 用于定义配置类,作用在类上。@Bean 用于定义 Bean对象,作用在方法上。@Configration 注解类中可以声明一个或多个 @Bean 方法User 类public class User { private String name; private int age; ...原创 2023-06-15 22:59:00 · 109 阅读 · 0 评论 -
SpringBoot异步及线程池配置
异步方法注解@Async在SpringBoot中进行异步处理,可以使用异步注解@Async和@EnableAsync。@Async注解表示异步,如:@Async("asyncServiceExecutor"),后面的参数asyncServiceExecutor对应于自定义的线程池配置类(在以下例子中为ExecutorConfig) 中的线程池方法名如果不写后面的参数,直接用@Async,...原创 2019-07-03 18:55:00 · 36 阅读 · 0 评论 -
SpringBoot无法访问接口,报错:This application has no explicit mapping for /error, so you are seeing this as a...
问题SpringBoot启动后,无法访问接口,报错如下:Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.There was an unexpected error (type=Not Found, status=404...原创 2022-01-23 21:46:00 · 77 阅读 · 0 评论 -
SpringBoot2.X整合集成Dubbo
环境安装Dubbo使用zookeeper作为注册中心,首先要安装zookeeper。Windows安装zookeeper如下:https://blog.csdn.net/qq_33316784/article/details/88563482Linux安装zookeeper如下:https://www.cnblogs.com/expiator/p/9853378.htmlSpringBo...原创 2022-01-24 23:33:00 · 24 阅读 · 0 评论 -
Intellij Idea新建 SpringBoot 项目
SpringBoot:SpringBoot开发项目非常方便,无需配置,开箱即用。可以用Intellij Idea快速新建 SpringBoot 项目。具体过程:点击Intellij Idea左上角的 File--> New --> Project -->Spring Initializr如果默认的starter url如果连不上,可以选择Custom,使用阿里巴巴的...原创 2022-01-25 19:33:00 · 47 阅读 · 0 评论 -
SpringBoot中Mybatis打印sql
如果使用的是application.properties文件,加入如下配置:logging.level.com.example.demo.dao=debuglogging.level.com,后面的路径指的是mybatis对应的方法接口所在的包。并不是mapper.xml所在的包。如果使用的是application.yml文件,加入如下配置:# 打印sqllogging: l...原创 2018-03-28 17:11:00 · 23 阅读 · 0 评论 -
SpringBoot集成Shiro
Shiro主要用来进行权限管理。简单的介绍如下:一、概念Shiro是一个安全框架,可以进行角色、权限管理。Shiro主要功能如下:Authentication(认证):用户身份识别,通常被称为用户“登录”Authorization(授权):访问控制。比如某个用户是否具有某个操作的使用权限。Session Management(会话管理):特定于用户的会话管理,甚至在非web 或 EJB 应...原创 2018-03-26 16:19:00 · 22 阅读 · 0 评论 -
SpringBoot配置mongodb打印日志
mongodb日志配置:在 application.yml添加配置:#mongodb打印日志logging: level: org.springframework.data.mongodb.core.MongoTemplate: DEBUG如果使用的是 application.properties,则是:#mongodb打印日志logging.level.org.spri...原创 2023-05-05 21:36:00 · 687 阅读 · 0 评论 -
SpringBoot中使用Redis
在SpringBoot中使用Redis,思路如下:查询时先查Redis缓存,如果缓存中存在信息,就直接从缓存中获取。如果缓存中没有相关信息,就去数据库中查找,查完顺便将信息存放进缓存里,以便下一次查询。另外,更新或者删除数据库数据时,记得删除相关的缓存。在SpringBoot中使用Redis的步骤如下:1.首先,添加依赖包: <dependency> ...原创 2018-08-08 15:45:00 · 24 阅读 · 0 评论 -
SpringBoot @Value读取配置的值
SpringBoot 读取properties文件/配置中心的属性,可以有以下两种方式:一、@Value注解SpringBoot在application.properties文件中,可以自定义属性。在properties文件中如下示:#自定义属性[email protected]接着,在类中可以通过@Value获取对应内容并赋值。@Value("${m...原创 2018-09-30 10:50:00 · 28 阅读 · 0 评论 -
maven/ SpringBoot 配置profile指定环境
maven 的 pom.xml 配置profile指定环境<profiles> <!-- 开发环境 --> <profile> <id>dev</id> <!-- 可以通过 @env@ 获取env的值, env也可以换成其他名称 --> ...原创 2023-07-11 11:23:00 · 1173 阅读 · 0 评论 -
SpringBoot集成mybatis
SpringBoot创建项目首先创建好项目,详情见:https://www.cnblogs.com/expiator/p/15844275.htmlSpringBoot引入mybatis依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <...原创 2023-02-07 23:28:00 · 23 阅读 · 0 评论 -
SpringBoot配置MongoDb
MongoDb建表:MongoDB不需要建表,直接插入数据就会建表。日期用 ISODate() 转换。db.getCollection("mongoDbTest").insert({userId:"dxcefg", status:1, price:1.23, updateTime : ISODate("2022-02-13T07:06:25.371Z")})添加 maven 依赖:&...原创 2023-04-26 23:06:00 · 142 阅读 · 0 评论 -
SpringBoot配置logback
1.在SpringBoot中已经集成了logback。在pom.xml中加入以下spring-boot-starter依赖,使用默认版本即可:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-start...原创 2018-11-24 23:04:00 · 16 阅读 · 0 评论 -
springBoot不同环境读取不同的配置
springBoot不同环境读取不同的配置在application.properties 中指定使用 哪个环境的配置文件:spring.profiles.active=dev当 spring.profiles.active 为 dev 时,会读取 application-dev.properties 的配置。当 spring.profiles.active 为 test 时,会读取 ...原创 2023-06-14 00:07:00 · 138 阅读 · 0 评论 -
SpringBoot中使用@Retryable注解进行重试
可以看到,@Retryable 修饰的方法执行了3次。仍旧失败后,会执行 @Recover 修饰的方法。在Application 启动类上,添加 @EnableRetry 注解。有功能需要重试时,可以使用Spring的 @Retryable 注解.原创 2023-10-11 17:07:30 · 324 阅读 · 0 评论 -
SpringBoot集成Redisson的分布式锁
可以在 application.properties 中添加。原创 2023-10-12 20:55:37 · 180 阅读 · 0 评论 -
springBoot实现发布订阅
SpringBoot 可以通过 ApplicationEvent 、ApplicationEventPublisher、@EventListener 实现事件的发布订阅。通过 ApplicationEventPublisher 发布事件。在开发中,有时需要监听某些事件,在事件触发时,执行相应的逻辑。继承 ApplicationEvent,定义 Event事件。通过 @EventListener 订阅事件,对事件进行监听。比如当点击某个按钮时,触发相应的功能,或者用户下单通知等等。原创 2023-10-16 21:19:39 · 295 阅读 · 1 评论