在开发中有时候经常需要一些Http请求,请求数据,下载内容,也有一些简单的分布式应用直接使用Http请求作为跨应用的交互协议。 在Java中有不同的Http请求方式,主要就是HttpURLConnection或者ApacheHttpClient,另外还有比较注明的OKHttp,或者国内常用的Hutool; Spring也内置了RestTemplate作为Http请求的工具类,简化了很多操作,虽然Spring5推出了WebClient,但是整体感觉还是RestTemplate用起来更简单方便一些。 这里记录分享下Re…

2022-10-02 0条评论 7点热度 0人点赞 admin 阅读全文

在使用Spring/SpringBoot做文件服务(对外提供文件流下载等)的时候,如果是音频视频,最好是提供断点续传功能,这样能可以支持客户端软件的断点续传功能,或者更好的音视频播放的播放、拖动等功能。 实现方法1 新版本的Spring或者SpringBoot是直接支持的,示例如下: // 也可以是video/* 或者下载文件application/octet-stream @GetMapping(value = "/audio/some.mp3", produces = "audio/*") public Res…

2022-08-25 0条评论 54点热度 0人点赞 admin 阅读全文

在用SpringSecurity做登录权限控制的时候,例如后台做代用户登录功能的时候,需要以指定某个用户登录账号。这里是以session作为登录状态管控的。 // 根据自己的业务获得登录用户的账号 Account account = systemDao.getAccountByNo(loginNo); // 组装出token UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken( account, nu…

2022-08-22 0条评论 36点热度 0人点赞 admin 阅读全文

Spring中的Service方法如果声明了事务,例如@Transactional(propagation = Propagation.REQUIRED),那么调用的时候,Spring会自动管理事务,遇到Exception,会rollback回滚,但是可能会遇到这种情况:同一个Service类中的方法,要调用本类中的其他方法(尽管这个方法也声明了事务),会发现调用的那个方法没有开启事务。 Spring开启事务,需要两个条件 首先需要方法声明是public的 声明事务,可以是在Service上加@Transactio…

2022-05-05 0条评论 196点热度 0人点赞 admin 阅读全文

前面的文章介绍了Spring/SpringBoot下Hibernate开启字段驼峰命名转数据库字段下划线的方式,详见:https://blog.terrynow.com/2022/04/22/spring-springboot-hibernate-auto-convert-pojo-camel-to-underline-strategy/ 如果项目是使用的 SpringMVC+Hibernate,也需要让实体类的驼峰命令转数据库字段的下划线,要怎么做呢,同样本人也是测试了网上说的hibernate.physical…

2022-05-02 0条评论 220点热度 0人点赞 admin 阅读全文

之前Hibernate中的实体类,对应数据库的字段,例如实体类中驼峰命令是:createDate,对应到数据库是带下划线的:create_date字段,一般来说是需要加@Column特别指定对应数据库表的字段的,例如: @Column(name = "create_date") public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = create…

2022-04-22 0条评论 289点热度 0人点赞 admin 阅读全文

需要select某个表,随机获取多条记录 利用rand()函数,hibernate会根据数据库不同(例如spring.jpa.properties.dialect,MySQL是org.hibernate.dialect.MySQLDialect,Oracle是org.hibernate.dialect.Oracle10gDialect),生成相应数据库的SQL /** * 返回随机选择的size个记录 */ public List<Student> listStudents(int size) { St…

2022-02-12 0条评论 151点热度 0人点赞 admin 阅读全文

项目中需要把Html的模板文件根据动态变量输出成string的html,供其他的调用(例如根据html生成html,或者根据html发送邮件等),项目是用SpringMVC5做的,用上了Thymeleaf模板引擎,还是挺方便的,发出来供参考,因为一些配置是基于xml的,网上看到的并不多。 首先引入依赖,pom.xml增加thymeleaf-spring5: <dependency> <groupId>org.thymeleaf</groupId> <artifactId&g…

2021-08-26 0条评论 475点热度 0人点赞 admin 阅读全文

我们用SpringBoot写好的Rest API,在开发阶段,前后端联调的时候,发现前端写的例如vue程序(axios)无法连接API,通过浏览器日志发现报错:No 'Access-Control-Allow-Origin' header is present on the requested resource. 原因是跨域了,为了安全期间,前端的程序和API不是同一个URL,导致无法访问。 网上写的一些SpringBoot解决跨域的,是给Controller增加@CrossOrigin注解,或者配置WebMvcC…

2021-08-18 0条评论 334点热度 0人点赞 admin 阅读全文

如题,我们需要在JSP或者Servlet中调用Spring中的Serivce,该如何做呢? 如下,我们写了一个service: @Service("systemService") @Transactional(readOnly = false) @Repository public class SystemServiceImpl implements ISystemService { // 代码省略 } 可以使用Spring的工具方法:来获取ApplicationContext,然后再来得到我们需要的service…

2021-08-16 0条评论 341点热度 0人点赞 admin 阅读全文