Spring
文章平均质量分 52
Spring
梁云亮
电 话:13264494458
微 信:13264494458
扣 扣:369950806
展开
-
SSM整合Thymeleaf时,抽取公共页面并向其传递参数
标签中的 th:replace 属性会根据指定的模板路径 common/header 来替换为 header.html 中的内容,并通过 th:with 属性将 pageTitle 参数传递给公共头部页面。在需要引用公共头部的页面中,使用Thymeleaf的 th:replace 属性来引用公共页面,并通过 th:with 属性传递参数。在公共头部页面中,可以通过Thymeleaf的语法 ${pageTitle} 来获取传递的参数值,并动态显示在页面上。原创 2023-09-19 20:43:13 · 325 阅读 · 0 评论 -
Spring集成tk.mybatis
【代码】Spring集成tk.mybatis。原创 2023-07-10 08:38:05 · 626 阅读 · 0 评论 -
面试题:Spring AOP 和 AspectJ AOP 有什么区别?
Spring AOP 和 AspectJ AOP 都是优秀的 AOP 框架,但是它们的实现方式、性能和功能略有不同,开发者应根据自己的需求和实际情况来选择合适的框架。如果需要更加灵活、强大的 AOP 功能和更高的性能,可以选择 AspectJ AOP,如果只是简单的 AOP 功能,可以选择 Spring AOP。Spring AOP 和 AspectJ AOP 都是 Java 平台上的 AOP 框架。Spring AOP 和 AspectJ AOP 的主要区别在于它们的实现方式、性能和功能。原创 2023-03-26 09:10:26 · 525 阅读 · 0 评论 -
@Transactional指定回滚条件
使用@Transaction注解时,阿里巴巴代码规范插件会提醒需要指定rollbackFor以显示的rollback默认情况下,Spring框架在使用@Transaction处理事务时默认只在抛出运行时异常和unchecked exceptions时才会事务回滚。也就是说,当抛出个RuntimeException 或其子类例的实例时,从事务方法中抛出的Checked exceptions将不被标识进行事务回滚。注意:原创 2022-06-02 07:21:48 · 1605 阅读 · 1 评论 -
Spring 中自定义注解
定义注解@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface MyAnno { String param();//注解传递的参数,可不加}定义切面@Component@Aspectpublic class MyInterceptor { @Before(value = "execution(public * com.hc.controller.*Controller.*原创 2022-05-27 10:31:59 · 165 阅读 · 0 评论 -
ssm项目整合Freemarker
第一步:添加Maven依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.18</version></dependency><dependency> <groupId>org.freemark原创 2022-05-11 15:04:49 · 228 阅读 · 0 评论 -
第五章 Spring集成Druid连接池
第一步:添加依赖<!-- https://mvnrepository.com/artifact/com.alibaba/druid --><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.6</version></dependency><原创 2022-05-09 08:28:48 · 529 阅读 · 0 评论 -
第四章 Spring集成MyBatis
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mav原创 2022-04-25 12:50:52 · 712 阅读 · 0 评论 -
第三章 AOP
简介AOP为Aspect Oriented Programming的缩写,意为:面向切面编程],通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。什么是OOP,Object Oriented Programming,原来就是面向对象的编程啊,还有OOD原创 2022-04-25 12:47:01 · 670 阅读 · 0 评论 -
第二章 IOC
简介IoC—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了有了IoC/DI的容器后,在客户端类中不再主动去创建这些对象了5.1 IoC是什么IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良原创 2022-04-25 12:44:52 · 321 阅读 · 0 评论 -
第一章 Spring入门
一、Spring框架概述Spring框架的创始人,同时也是SpringSource的联合创始人。Spring是面向切面编程(AOP)和控制反转(IoC)的容器框架。Rod的畅销书Expert One-on-One J2EE Design and Development(2002年出版)是迄今为止J2EE领域最具影响力的书之一。1.1 spring概述Spring框架是一个开放源代码的J2EE应用程序框架,由[Rod Johnson](https://baike.baidu.com/item/Rod原创 2022-04-25 11:03:40 · 333 阅读 · 0 评论 -
基于Spring BeanUtils 实现 JavaBean克隆及属性拷贝
实体类Goods.java@Getter@Setter@ToString@Builder@AllArgsConstructor@NoArgsConstructorpublic class Goods { /** * 编号 */ private Long id; /** * 商品名称 */ private String name; /** * 条形码 */ private Stri原创 2021-12-03 15:56:45 · 482 阅读 · 0 评论 -
自定义Listener
示例:自定义监听器:项目一启动就将用户项目路径放到application中,方面页面随时使用。第一步:创建Maven应用,添加依赖<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> &l...原创 2020-05-03 09:24:20 · 393 阅读 · 0 评论 -
@Transactional失效场景汇总
数据库引擎不支持事务异常被catch捕获导致@Transactional失效如果Transactional注解应用在非public 修饰的方法上,Transactional将会失效。@Transactional 注解属性 propagation 设置错误,以下三种 propagation,事务将不会发生回滚。TransactionDefinition.PROPAGATION_SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。TransactionDefi原创 2020-06-17 14:03:59 · 944 阅读 · 12 评论 -
Spring事务的传播行为
REQUIRED如果当前没有开启事务,就开启一个新事务,如果当前开启了事务,就加入该事务。Service层代码:@Service("deptService")public class DeptServiceImpl implements DeptService { @Resource private DeptMapper deptMapper; @Override @Transactional(propagation = Propagation.REQUIRED)原创 2020-06-17 14:10:21 · 386 阅读 · 11 评论 -
使用Spring Cache设置缓存条件
原理从Spring3.1开始,Spring框架提供了对Cache的支持,提供了一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的作用。提供的主要注解有@Cacheable、@CachePut、@CacheEvict和@Caching,具体见下表:注解说明@Cacheable可以标注在类或方法上:标注在方法上表示该方法支持数据缓存;标在类上表示该类的所有方法都支持数据缓存。 具体功能:在执行方法体之前,检查缓存中是否有原创 2021-07-31 10:23:12 · 975 阅读 · 0 评论 -
@Autowired 与@Resource的区别
IDEA中MAVEN项目打JAR包的简单方法1、准备工作:创建Maven项目,并在com.zparkep包下创建如下代码:public class App { public static void main(String[] args) { System.out.println("Hello World 1234 !"); }}2、在maven项目的pom...原创 2019-11-24 23:41:38 · 686 阅读 · 2 评论 -
Spring Data Redis
第一步:创建项目,按如下所示添加Maven依赖:<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope></dependency><dependency> <g原创 2020-06-10 22:10:01 · 198 阅读 · 0 评论 -
Spring整合ActiveMQ
错误SpringMVC在整合ActiveMQ时报错:27-Apr-2020 12:33:04.496 信息 [RMI TCP Connection(5)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Ena...原创 2020-04-27 12:45:31 · 330 阅读 · 0 评论 -
Spring断言机制
Assert翻译为中文为"断言",就是断定某一个实际的值为自己预期想得到的,如果不一样就抛出异常。使用 Assert 断言类可以简化方法入参检测的代码,如 InputStream getData(String file) 在应用 Assert 断言类后,其代码可以简化为以下的形式:public InputStream getData(String file){ Assert.hasText(file,"file入参不是有效的文件地址"); //使用 Spring 断言类进行方法入参检原创 2020-10-27 21:57:54 · 1149 阅读 · 0 评论 -
Spring Bean的作用域
SpringBean作用域有:singleton:单例模式,当spring创建applicationContext容器的时候,spring会欲初始化所有的该作用域实例,加上 lazy-init 可以避免预处理prototype:原型模式,每次通过getBean()方法获取bean就会新产生一个实例,创建后spring将不再对其管理equest:每次请求都新产生一个实例session: 每次会话,只要是同一个会话,就使用同一个实例global session: 全局的web域,类似于servle原创 2021-09-06 09:24:45 · 153 阅读 · 0 评论 -
【精品】Spring AOP 基于AspectJ实现 注解和XML形式
第一步:添加Maven依赖<!--AOP相关--><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${aspectjrt.version}</version></dependency><dependency> <gro原创 2021-11-17 10:17:58 · 304 阅读 · 0 评论 -
Spring 获取 properties文件的内容
第一步:修改Spring配置文件在spring配置文件添加如下标签<context:property-placeholder location="classpath:*.properties" />第二步:使用@Componentpublic class DruidUtil{ @Value("${url}") private String url; @Value("${username}") private String username; @Value("${pa原创 2021-11-17 18:14:19 · 404 阅读 · 0 评论 -
Spring中注解方式下Bean的作用域
简介Spring bean 作用域默认是 单例 singleton;可以通过配置 prototype实现多例;被注入到Spring中的类Account.java@Scope("singleton")@Componentpublic class Account {}User.java@Scope("prototype")@Componentpublic class User {}注:Scope的值,也可以使用下面的方式指定:测试代码public class Scop原创 2021-11-17 23:48:21 · 872 阅读 · 2 评论 -
SSM项目 拦截器
第一步:编写一个拦截器(登录拦截器)@Slf4jpublic class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String requestURI = requ原创 2021-11-25 11:52:44 · 1020 阅读 · 18 评论 -
SSM设置默认的404及500页面
第一步:在webapp根目录创建404.jsp和500.jsp页面第二步:在web.xml中添加如下配置 <!-- 默认404页面--> <error-page> <error-code>404</error-code> <location>/404.jsp</location> </error-page> <!-- 默认500页面--> <error-page&原创 2021-11-24 21:05:03 · 750 阅读 · 0 评论 -
SSM 事务支持
第一步:mybatis.xml中添加支持事务的配置<!-- 配置事务管理器 --><bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="ds"/></bean><!-- 配置基于注解的声明式事务 --><tx:an原创 2021-11-10 20:59:31 · 1208 阅读 · 7 评论 -
Spring整合Junit单元测试
使用Junit5测试Maven依赖<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>5.7.2</version> <scope>test</scope></dependency>测试代码@ExtendWith(SpringE原创 2021-11-09 13:01:01 · 588 阅读 · 4 评论 -
设置Intellij 编译src目录下的xml文件
让IDEA编译src目录下的xml文件<!-- 指定Mapper XML文件在mybatis-config.xml中的配置有效--><resources> <resource> <directory>src/main/java</directory> <includes> ...原创 2019-11-15 14:13:53 · 832 阅读 · 0 评论 -
封装服务器端返回分页结果的PageBean
封装服务器端返回分页结果的服务器端返回结果一般情况下需要分页,下面实体类封装了服务器端返回的带有分页功能的Beanimport java.util.List;public class PageBean<T> { private List<T> records;//当前页显示的数据 private long pageNum; //当前页码 ...原创 2019-11-15 11:03:41 · 563 阅读 · 1 评论 -
面试题 之 Java基础部分 十
面试题 之 Java基础部分 十1、谈谈你对Struts的理解。struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类。我们可以在web.xml文件中将符合某种特征的所有请求交给这个Servlet处理,这个Servlet再参照一个配置文件(通常为/WEB-INF/struts...原创 2019-10-23 18:38:30 · 406 阅读 · 11 评论 -
【精品】SSM集成开发环境搭建
SSM集成开发环境搭建第一步:创建Maven Web项目第二步:添加Maven依赖<!--单元测试--><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12<...原创 2019-11-09 17:46:16 · 557 阅读 · 0 评论 -
JWT简介
简介Json web token (JWT),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)。该标准被设计为紧凑且安全的,一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息。当然该标准也可直接被用于认证,也可被加密。JWT 定义了一种用于简洁,自包含的用于通信双方之间以...原创 2020-01-22 01:13:13 · 1129 阅读 · 10 评论 -
基于表单的身份验证
目前用户的认证多半是基于表单的认证,基于表单的认证一般会使用 Cookie 来管理Session(Session会话,Session代表着服务器和客户端一次会话的过程,直到Session失效(服务端关闭)或者客户端关闭时结束)。基于表单认证本身是通过服务器端的Web应用,将客户端发送过来的用户ID和密码与之前登录过的信息做匹配来进行认证的。但鉴于 HTTP 是无状态协议, 之前已认证成功的用户状...原创 2020-01-22 12:16:08 · 1308 阅读 · 0 评论 -
Spring整合SpringMVC
第一步:创建Maven项目最终项目目录结构按如下所示添加依赖:<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>t...原创 2020-01-24 11:15:36 · 254 阅读 · 0 评论 -
单点登录
所谓的单点登录是指用户在一个站点如www.hcshow.online登录后切换到另一个站点blog.hcshow.online时也自动 被blog的Server判断为已经登录,反过来,只要用户在blog.hcshow.online登出后,切换到 www.hcshow.online时后www的Server也会判断到这一用户已经登出。一般在实现单点登录的时候会经常用到Cookie的Domain属性,...原创 2020-01-24 15:52:08 · 372 阅读 · 0 评论 -
基于Cookie的Session跨域
域一个完整的、有独立访问路径的功能集合称为一个域。域信息,有时也称为多级域名。域以IP、端口、域名、主机名为标准实现划分。例如百度下的若干个域:搜索引擎(www.baidu.com),百度贴吧(tie.baidu.com),百度知道(zhidao.baidu.com),百度地图(map.baidu.com)等。跨域客户端请求的时候,请求服务器的IP、端口、域名、主机名只要有一个相同,都...原创 2020-01-25 12:00:35 · 790 阅读 · 0 评论