spring-boot-route(十三)整合RabbitMQ
这篇是SpringBoot整合消息队列的第一篇文章,我们详细介绍下消息队列的相关内容。消息队列简介1. 什么是消息队列MQ(Message Quene):通过典型的生产者和消费者模型,生产者不断向消息队列中产生消息,消费者不断的从队列中获取消息。因为生产者和消费者都是异步的,而且生产者只关心消息的发送,...
2024-01-10springboot项目中使用undertowweb服务器
Untertow 的特点 Servlet4.0 支持:它提供了对 Servlet4.0 的支持。 WebSocket 支持:对 Web Socket 完全支持,包括JSR-356,用以满足 Web 应用巨大数量的客户端。 嵌套性:它不需要容器,只需通过 API 即可快速搭建 Web 服务器。 灵活性:交由链式Handler配置和处理请求,可以最小化按需加载模块,无须加载多余功能。...
2024-01-10如何使用Hibernate在Spring Boot中实现分页
我将Spring Boot与Hibernate结合使用,并且想在项目中使用分页。我在Google上搜索过,看到了很多示例,但无法在我的项目中实现。我想如果我在网址中传递1,那么应该有10个结果,如果我传递2,则应该是有10个结果,依此类推。这是我的 @Transactionalpublic interface PostDao extends CrudRepository<Post, Long>{@Query(getA...
2024-01-10【Java】netty和springboot整合 rabbitmq无法绑定消费者
使用netty和springboot整合 在bean初始化之后启动实现ApplicationContextAware以获得ApplicationContext中的所有bean具体参考自https://segmentfault.com/a/11...websocket正常,但是加入了rabbitmq,消费者一直无法绑定导致消息队列一直无法消费,请问这种情况该怎么处理?回答...
2024-01-10【springboot】thymleaf如何获取session中的值
<form method="get" th:action="@{/logout_html}" id="userinfo"> <button type="submit" class="btn btn-link">退出</button> <b style="display:inline;" th:text="'用户名:' + ${session.loginUser}"></b></form>关键代码:session.loginUser...
2024-01-10SSH框架搭建和整合(struts2、spring4、hibernate5)
本文内容纲要:- 声明:- 目的:声明: 本博文是个人通过对ssh框架的学习、理解还有一些看法而描述出来的,可能有不足之处,请大家谅解,但希望能帮助到大家!目的:使初学者能更好的去了解SSH框架。给以后的自己,也给别人一个参考。尝试搭建一个完整的SSH框架项目。一、SSH三大框...
2024-01-10Springboot整合Freemarker的实现详细过程
基本配置、测试1、导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId></dependency>2、准备一个Freemarker模板(.ftl)3、注入Configuration对象(freemarker.template包下)4、生成商品详情模板@Controller@RequestMapping("/goodItem")p...
2024-01-10Spring boot+beetl+i18n国际化处理的方法
国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。Spring boo...
2024-01-10如何在Spring Boot时使用Hibernate生成自动UUID
我正在尝试实现的是生成一个UUID,该UUID在数据库插入期间会自动分配。与名为“ id”的主键列相似,生成一个id值。模型值看起来像这样:@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(nullable = false)private Long id;@GeneratedValue(generator = "uuid2")@GenericGenerator(name = "uuid2", strategy = "uuid2")@Colum...
2024-01-10SpringBoot+Mybatis+ShardingJDBC实现数据分片
ShardingJDBC是基于Mybatis等ORM框架和数据库之间的一层中间件,简单地说它包装了数据库中分库分表,读写分离,数据脱敏等操作,向上给ORM框架提供数据源。对于应用开发者而言,无需关心自己的数据应该存在哪个库哪张表,他/她的直接操作对象还是ORM框架,ORM框架的处理对象是逻辑表,ShardingJDBC的工...
2024-01-10如何从Spring获取Hibernate Configuration对象?
我正在尝试在非Spring代码中获取Spring定义的HibernateConfiguration和SessionFactory对象。以下是我的applicationContext.xml文件中的定义:码:<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="hibernateProperties"> <props> <pr...
2024-01-10【Java】Jenkins执行springboot项目shell脚本优化问题
情景:使用jenkins去部署springboot项目,执行shell脚本java -jar问题: 在jenkins控制台成功的执行mvn build以后并将jar上传到远程服务器,并执行java -jar cms-web-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod > /dev/null 2>&1 &解释一下这里不在jenkins控制台打印java -jar日志的原因:因为jenkins的ssh有300000的超时时间(Timeout in mil...
2024-01-10spring boot thymeleaf 图片上传web项目根目录操作步骤
thymeleaf介绍简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点:1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果...
2024-01-10Spring中的AutowireCandidateResolver的具体使用详解
接口定义用于推断一个特定的beanDefinition是否能作为指定依赖的候选者的策略接口public interface AutowireCandidateResolver { // 默认情况下直接根据bd中的定义返回,如果没有进行特殊配置的话为true default boolean isAutowireCandidate(BeanDefinitionHolder bdHolder, DependencyDescriptor descriptor) { return bdHolder.getBeanD...
2024-01-10在spring boot中使用java线程池ExecutorService的讲解
1. 认识java线程池1.1 在什么情况下使用线程池?1.单个任务处理的时间比较短2.需处理的任务的数量大1.2 使用线程池的好处:1.减少在创建和销毁线程上所花的时间以及系统资源的开销2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存1.3 线程池包括以下四个基本组成部分:1...
2024-01-10【Java】springboot中的@DeleteMapping注解无法获取参数值
最近在试试使用springboot编写一个demo进行测试,测试过程中发现@DeleteMapping注解有一些问题,现在汇总如下,有大神指点一下示例1:问题:无法获取参数id的值 @DeleteMapping(value = "userinfo")public void deleteUserinfo(Integer id) {System.out.println("========= id : " + id);this.dao.delete(id);}在spring-mvc中,经常使用上面的方...
2024-01-10SpringBoot热部署Springloaded实现过程解析
为啥要热部署:在修改代码的时候,不需要重新启动程序,程序会自动进行编译注意:控制器中新增加的方法是不能进行热部署的方法:1.在pom.xml文件里面添加下面代码<project> <build> <finalName>myshop</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin...
2024-01-10SpringBoot结合SpringSecurity实现图形验证码功能
本文介绍了SpringBoot结合SpringSecurity实现图形验证码功能,分享给大家,具体如下:生成图形验证码根据随机数生成图片将随机数存到Session中将生成的图片写到接口的响应中生成图形验证码的过程比较简单,和SpringSecurity也没有什么关系。所以就直接贴出代码了根据随机数生成图片/** * 生成图形...
2024-01-10使用Spring的AbstractRoutingDataSource实现多数据源切换示例
最近因为项目需要在做两个项目间数据同步的需求,具体是项目1的数据通过消息队列同步到项目2中,因为这个更新操作还涉及到更新多个库的数据,所以就需要多数据源切换的操作。下面就讲讲在Spring中如何进行数据源切换。这里是使用AbstractRoutingDataSource类来完成具体的操作,AbstractRoutingDataSource是Sp...
2024-01-10SpringBoot四大神器之autoconfiguration
SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConfigurationProperties 或者 @ConfigurationProperties 等几个注解来进行自动配置完成的。 @EnableAutoConfiguration 开启自动配置,主要作用就是调用 Spring-Core 包里的 loadFactoryNames(),将 autoconfig 包里的已经写好的自动配置加载进来。 @Conditiona...
2024-01-10【Java】intelij创建springboot web+mybatis项目,点击run启动不了,如下图
问题有时候创建项目的时候,点击项目run,或者启动类run就可以了,但是有时候就不行,重新打开点击提示as a maven porject就可以了,但是又有了新的问题有了run之后,点击 run报错回答首先确保你的 pom.xml 中加入了相关的依赖:<!-- Mybatis --><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>my...
2024-01-10forward和redirect在SpringMVC和SpringBoot中的使用
使用场景在接口开发过程中,在Controller层实现供前端调用的接口开中时,有时一个功能已经在其他Controller中实现过,如在该Controller中重复实现一遍会造成代码冗余,不是推荐的方案?那怎么做到让前端开发人员看着比较方便一点儿,而后端又不会产生冗余呢?这里推荐在Controller中使用forward实现。...
2024-01-10Hibernate无法从数据库中获取SequenceInformation
我最近将应用程序中的hiberbnate模式更新为5.4.4.Final。现在,在部署过程中我面临以下异常。ERROR [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentImpl|[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)']Could not fetch the SequenceInformation from the databas...
2024-01-10如何在Spring Boot中全局配置@DateTimeFormat模式?
在我的Spring Boot应用程序中,我有一些接受日期作为查询参数的控制器:@RestControllerpublic class MyController { @GetMapping public ResponseEntity<?> getDataByDate( @RequestParam(value = "date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) final LocalDate date) { return...
2024-01-10