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

2022-05-05 0条评论 90点热度 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条评论 81点热度 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条评论 89点热度 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条评论 101点热度 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条评论 372点热度 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条评论 273点热度 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条评论 254点热度 0人点赞 admin 阅读全文

最近迁移一个Spring项目到阿里云,之前有一个功能smtp发邮件是正常的,到了阿里云就不能发送了(超时),到服务器的命令行上去telnet smtp服务器的25端口(telnet smtp.example.com 25),发现是超时不通的,应该是被阿里云封锁了。 现在一般smtp服务器都配置了SSL功能(默认465端口),尝试telnet后,发现是465端口是可以的,所以需要修改发邮件程序 SpringBoot 下配置文件修改 # 使用 smtp 协议 spring.mail.protocol = smtp sp…

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

SpringMVC的Java程序中,希望能定时执行一些任务,例如每隔一定时间,或者每天定时执行一个方法等等。 如果你使用的是SpringBoot,请参考:https://blog.terrynow.com/2021/07/10/java-spring-springboot-schedule-implement/ SpringMVC中的配置要稍微比SpringBoot多一些配置 首选修改application-context.xml(这个文件可能会根据你web.xml里的contextConfigLocation的设…

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

在之前的文章,介绍了如何使用纯Java、JavaMail来发送邮件(解决中文乱码,发送HTML邮件),详见:https://blog.terrynow.com/2021/03/30/java-mail-smtp-send-email/ SpringBoot下发送邮件的文章,请查看:https://blog.terrynow.com/2021/07/26/java-springboot-send-mail-example-include-html-inline-attachment/ 本篇介绍如何使用SpringMV…

2021-07-24 0条评论 723点热度 0人点赞 admin 阅读全文