
Spring
HernSong
HernSong
展开
-
SSM框架——整合Druid进行数据监控
Druid的简介 Druid是阿里巴巴开源平台上一个数据库连接池实现(网上都说这个是目前java最好的连接池)。Druid还能够提供强大的监控和扩展功能。他能做到精度在方法级的监控,方便你找出在哪个方法上,哪个sql语句上花费的时间最多,然后做出针对性优化。Druid的功能1、替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。2、可以监控数...转载 2020-05-01 17:18:36 · 538 阅读 · 0 评论 -
Spring MVC+Spring+MyBatis实现支付宝扫码支付功能(图文详解)
支付宝测试环境代码测试1.下载电脑网站的官方demo:下载:https://docs.open.alipay.com/270/106291/2.下载解压导入eclipsereadme.txt请好好看一下。只有一个Java配置类,其余都是JSP。3.配置AlipayConfig(1) 注册蚂蚁金服开发者账号(免费,不像苹果会收取费用)注册地址:https://ope...转载 2020-03-07 09:25:51 · 472 阅读 · 0 评论 -
spring配置数据库连接池druid
连接池原理连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、...转载 2020-02-22 23:17:16 · 825 阅读 · 0 评论 -
日志打印出来的对象都是XXX@39ddf169解决方法
前言使用logback/log4j等原生的日志框架,在日志输出的时候可能会遇到一个问题,经常要打印对象的时候,出现如以下代码:log.info("req={}",aRequest);打印结果却是以下形式:com.hollis.java.ways.ApplyRequest@39ddf169原因:要打印的对象没有重写toString方法,这样无法将该对象的参数打印出来...原创 2019-12-07 04:01:45 · 883 阅读 · 0 评论 -
Spring、Spring MVC、MyBatis整合文件配置(SSM整合配置)
web.xml的配置<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche...原创 2019-12-07 03:52:28 · 272 阅读 · 0 评论 -
SpringBoot——web开发静态资源映射规则
SpringBoot支持的目录映射包含(优先级从上到下,即若有相同文件资源时会先执行:META-INF/resources/ > resource > static > public > / ,注意:自己指定静态资源路径时以上目录不起作用!):classpath:/META-INF/resources/ classpath:/resources/class...原创 2019-11-30 17:13:59 · 450 阅读 · 0 评论 -
spring5.0解决Log4jConfigListener过期问题
升级到spring5.0,发现之前web.xml 里配置的log监听Log4jConfigListener被spring废弃了,百度了一下,没有发现答案。这个是web.xml之前的配置: <context-param> <param-name>log4jConfigLocation</param-name> <...转载 2019-10-22 16:22:45 · 797 阅读 · 0 评论 -
Spring 重用切入点定义
•在编写 AspectJ 切面时, 可以直接在通知注解中书写切入点表达式. 但同一个切点表达式可能会在多个通知中重复出现.•在 AspectJ 切面中, 可以通过 @Pointcut 注解将一个切入点声明成简单的方法. 切入点的方法体通常是空的, 因为将切入点定义与应用程序逻辑混在一起是不合理的. •切入点方法的访问控制符同时也控制着这个切入点的可见性. 如果切入点要在多个切面中共用, 最...原创 2019-10-21 22:06:01 · 352 阅读 · 0 评论 -
Spring——@SuppressWarnings注解(消除警告产生)
@SuppressWarnings注解主要用在取消一些编译器产生的警告对代码左侧行列的遮挡,有时候这会挡住我们断点调试时打的断点。@SuppressWarnings注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。注解的使用有三种:@SuppressWarnings("unchecked") : 抑制单类型的警告] @SuppressWarnings("unchecked"...原创 2019-09-18 16:09:04 · 1620 阅读 · 0 评论 -
Spring IOC
广义的 IOCIoC(Inversion of Control) 控制反转,即“不用打电话过来,我们会打给你”。两种实现:依赖查找(DL)和依赖注入(DI)。IOC 和 DI 、DL 的关系(这个 DL,Avalon 和 EJB 就是使用的这种方式实现的 IoC): DL 已经被抛弃,因为他需要用户自己去是使用 API 进行查找资源和组装对象。即有侵入性。 DI 是 S...转载 2019-08-06 16:34:24 · 320 阅读 · 0 评论 -
Spring——声明式事务
1 理解Spring Framework的声明式事务实现告诉你简单的为你的类注释上@Transactional的注释, 为配置加上@EnableTransactionManagement是不够充分的, 除非你理解了他们全部是如何工作的.从概念上来讲, 在事务型代理上调用一个方法看起来像这样…2声明式事务实现的例子//我们想使之支持事务的服务层接口packa...转载 2019-07-27 20:55:15 · 333 阅读 · 0 评论 -
Spring——@Autowired注解遇到多个类型匹配注入的方式
如果有唯一的一个类型匹配时,则会直接注入成功。如果有多个类型匹配时,会先按照类型找到符合条件的对象,然后再用变量名称作为bean的id,从里面继续查找,如果找到仍然可以注入成功,如果没有匹配的ID则会报错。例如:(例子中有两个持久层实现类,当在服务层即Service层使用@Autowired注解进行匹配时,只需与持久层定义bean的ID名称与变量名称相匹配!)spring.xml配...原创 2019-07-22 11:30:26 · 6106 阅读 · 0 评论 -
Spring——@Bean注解、@Configuration注解、@Import注解
@Bean注解、@Configuration注解、@Import注解三个注解都是spring的配置类。@Bean注解@Bean注解是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。@Bean注解把当前方法的返回值作为bean对象存入spring容器中,其name属性用于指定bean的id(若没写该属性,默认值是当前的方法名)...原创 2019-07-22 11:30:23 · 1406 阅读 · 0 评论 -
Spring——切入点表达式
Spring AOP所支持的AspectJ切点指示器:以上指示器中只有execution指示器是实际执行匹配的,而其他的指示器都是用来限制匹配的。execution———用来匹配执行方法的连接点,语法结构:execution( 方法修饰符方法返回值 方法所属类匹配方法名(方法中的形参表) 方法申明抛出的异常 )其中红色字体的部分时不能省略的,各部分都...原创 2019-07-22 11:30:12 · 459 阅读 · 0 评论 -
Spring 事务的隔离级别、设置隔离事务属性、设置回滚事务属性、设置超时和只读事务属性
事务的隔离级别•从理论上来说, 事务应该彼此完全隔离, 以避免并发事务所导致的问题. 然而, 那样会对性能产生极大的影响, 因为事务必须按顺序运行. •在实际开发中, 为了提升性能, 事务会以较低的隔离级别运行.•事务的隔离级别可以通过隔离事务属性指定Spring 支持的事务隔离级别:•事务的隔离级别要得到底层数据库引擎的支持, 而不是应用程序或者框架的支持.•Orac...转载 2019-05-19 11:24:43 · 864 阅读 · 0 评论 -
Spring 事务传播属性
事务传播属性•当事务方法被另一个事务方法调用时, 必须指定事务应该如何传播. 例如: 方法可能继续在现有事务中运行, 也可能开启一个新事务, 并在自己的事务中运行.•事务的传播行为可以由传播属性指定. Spring 定义了 7 种类传播行为.REQUIRED 传播行为•当 bookService 的 purchase() 方法被另一个事务方法 checkout() 调用时,...转载 2019-05-19 11:13:10 · 362 阅读 · 0 评论 -
Spring 事务管理
事务•事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的完整性和一致性. •事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用•事务的四个关键属性(ACID)–原子性(atomicity): 事务是一个原子操作, 由一系列动作组成. 事务的原子性确保动作要么全部完成要么完全不起作用.–一致性(consistency):...原创 2019-05-19 11:09:02 · 304 阅读 · 0 评论 -
Spring 在 JDBC 模板中使用具名参数
•在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制. 定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参数绑定. •在 Spring JDBC 框架中, 绑定 SQL 参数的另一种选择是使用具名参数(named parameter). •具名参数: SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参...原创 2019-05-19 10:03:28 · 403 阅读 · 0 评论 -
Spring 基于 XML 的配置声明切面
•除了使用 AspectJ 注解声明切面, Spring 也支持在 Bean 配置文件中声明切面. 这种声明是通过 aop schema 中的 XML 元素完成的.•正常情况下, 基于注解的声明要优先于基于 XML 的声明. 通过 AspectJ 注解, 切面可以与 AspectJ 兼容, 而基于 XML 的配置则是 Spring 专有的. 由于 AspectJ 得到越来越多的 AOP 框架支...原创 2019-05-19 09:37:42 · 921 阅读 · 0 评论 -
Spring 指定切面的优先级
•在同一个连接点上应用不止一个切面时, 除非明确指定, 否则它们的优先级是不确定的.•切面的优先级可以通过实现 Ordered 接口或利用 @Order 注解指定.•实现 Ordered 接口, getOrder() 方法的返回值越小, 优先级越高.•若使用 @Order 注解, 序号出现在注解中...原创 2019-05-19 09:07:12 · 511 阅读 · 0 评论 -
spring @Aspect注解
•要在 Spring 应用中使用 AspectJ 注解, 必须在 classpath 下包含 AspectJ 类库: aopalliance.jar、aspectj.weaver.jar 和 spring-aspects.jar•将 aop Schema 添加到 <beans> 根元素中.•要在 Spring IOC 容器中启用 AspectJ 注解支持, 只要在 Bean 配...原创 2019-05-17 20:10:56 · 52408 阅读 · 1 评论 -
Spring @Resource注解
@Resource和@Autowired注解都是用来实现依赖注入的。只是@AutoWried按by type自动注入,而@Resource默认按byName自动注入即直接根绝bean的ID进行注入。@Resource有两个重要属性,分别是name和typespring将name属性解析为bean的名字,而type属性则被解析为bean的类型。所以如果使用name属性,则使用byName的自...转载 2019-05-17 16:12:15 · 8472 阅读 · 0 评论 -
Spring 常用注解
--定义Bean的注解@Controller@Controller("Bean的名称")定义控制层Bean,如Action@Service @Service("Bean的名称")定义业务层Bean@Repository @Repository("Bean的名称")定义DAO层Bean@Component 定...转载 2019-05-17 15:42:17 · 288 阅读 · 0 评论 -
Spring @Qualifier注解
@Qualifier作用是在自动按照类型注入的基础上,再按照bean的ID注入,在给类成员注入时,它不能够独立使用,需要配合@Autowired来使用,其中value属性用于指定bean的ID。@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的bean时,就会抛出BeanCreationException异常;如果Spring上下文中不存在...原创 2019-05-17 15:27:49 · 1290 阅读 · 0 评论 -
Spring XML 配置里的 Bean 自动装配
•Spring IOC 容器可以自动装配 Bean. 需要做的仅仅是在 <bean> 的 autowire 属性里指定自动装配的模式•byType(根据类型自动装配): 若 IOC 容器中有多个与目标 Bean 类型一致的 Bean. 在这种情况下, Spring 将无法判定哪个 Bean 最合适该属性, 所以不能执行自动装配.•byName(根据名称自动装配): 必须将目标 ...转载 2019-05-17 08:03:14 · 382 阅读 · 0 评论 -
Spring 使用 p 命名空间
•为了简化 XML 文件的配置,越来越多的 XML 文件采用属性而非子元素配置信息。•Spring 从 2.5 版本开始引入了一个新的 p 命名空间,可以通过 <bean> 元素属性的方式配置 Bean 的属性。•使用 p 命名空间后,基于 XML 的配置方式将进一步简化•使用ref可以连接其他bean。例如:1、普通方法application.xml &...转载 2019-05-16 21:16:09 · 668 阅读 · 0 评论 -
Spring 集合属性、utility scheme
•在 Spring中可以通过一组内置的 xml 标签(例如: <list>, <set> 或 <map>) 来配置集合属性.•配置 java.util.List 类型的属性, 需要指定 <list> 标签, 在标签里包含一些元素. 这些标签可以通过 <value> 指定简单的常量值, 通过 <ref> 指定对其他 Bea...转载 2019-05-16 21:02:20 · 421 阅读 · 0 评论 -
Spring 字面值注意事项
•字面值:可用字符串表示的值,可以通过 <value> 元素标签或 value 属性进行注入。•基本数据类型及其封装类、String 等类型都可以采取字面值注入的方式•若字面值中包含特殊字符,可以使用 <![CDATA[]]> 把字面值包裹起来。...原创 2019-05-16 20:30:39 · 351 阅读 · 0 评论 -
XML中 & 等符合的转义
注意:如果字符可能会使 XML 分析器错误地解释文档结构,请使用实体,否则在XML中使用实体引用。原创 2019-04-19 17:18:58 · 12247 阅读 · 0 评论 -
org.springframework.beans.factory.BeanInitializationException: Could not load properties;
基本报错信息表现为:严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanInitializationExce...转载 2019-04-09 15:19:05 · 3605 阅读 · 0 评论 -
Spring 使用具名参数NamedParameterJdbcTemplate
简介•在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制. 定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参数绑定. •在 Spring JDBC 框架中, 绑定 SQL 参数的另一种选择是使用具名参数(named parameter). •具名参数: SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性....原创 2019-03-08 18:38:52 · 429 阅读 · 0 评论 -
Spring 使用JdbcTemplate
•为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架.•作为 Spring JDBC 框架的核心, JDBC 模板的设计目的是为不同类型的 JDBC 操作提供模板方法. 每个模板方法都能控制整个过程, 并允许覆盖过程中的特定任务. 通过这种方式, 可以在尽可能保留灵活性的情况下, 将数据库存取的工作量降到最低.•用 ...原创 2019-03-07 20:36:59 · 375 阅读 · 0 评论 -
Spring 使用外部属性文件
•在配置文件里配置 Bean 时, 有时需要在 Bean 的配置里混入系统部署的细节信息(例如: 文件路径, 数据源配置信息等). 而这些部署细节实际上需要和 Bean 配置相分离方式一:利用PropertyPlaceholderConfigurer •Spring 提供了一个 PropertyPlaceholderConfigurer 的 BeanFactory 后置处理器, 这个处理器...原创 2019-03-07 20:20:43 · 294 阅读 · 0 评论 -
IDEA Spring项目编译时——通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。解决方法
原因头文件没有写全光有以下两个文件时不行的xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/context"解决方法应该再在xsi:schemaLocation里面补上http:/...原创 2019-03-05 15:59:28 · 2234 阅读 · 0 评论 -
Spring AOP
定义在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开...原创 2019-03-04 20:27:11 · 271 阅读 · 0 评论 -
Spring 泛型依赖注入
Spring 4.0版本中更新了很多新功能,其中比较重要的一个就是对带泛型的Bean进行依赖注入的支持。Spring4的这个改动使得代码可以利用泛型进行进一步的精简优化。泛型依赖注入的优点泛型依赖注入就是允许我们在使用spring进行依赖注入的同时,利用泛型的优点对代码进行精简,将可重复使用的代码全部放到一个类之中,方便以后的维护和修改。同时在不增加代码的情况下增加代码的复用性。下面我们用一...转载 2019-03-04 19:27:51 · 9014 阅读 · 0 评论 -
Spring 注解配置Bean
从 Spring 2.5 开始就可以使用注解方式来配置依赖注入。而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注解,将 bean 配置移动到组件类本身。在 XML 注入之前进行注解注入,因此后者的配置将通过两种方式的属性连线被前者重写。注解连线在默认情况下在 Spring 容器中不打开。因此,在可以使用基于注解的连线之前,将需要在Spring 配置文件中启用它...原创 2019-03-03 20:14:00 · 299 阅读 · 0 评论 -
Spring 生命周期
Spring IOC 容器可以管理 Bean 的生命周期, Spring 允许在 Bean 生命周期的特定点执行定制的任务。Spring IOC 容器对 Bean 的生命周期进行管理的过程: 1、通过构造器或工厂方法创建 Bean 实例2、为 Bean 的属性设置值和对其他 Bean 的引用3、调用 Bean 的初始化方法4、Bean 可以使用了5、当容器关闭时, 调用 ...原创 2019-03-03 17:24:46 · 300 阅读 · 0 评论 -
Spring SpEL表达式
定义Spring 表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言。从Spring3引入了Spring表达式语言(Spring Expression Language,SpEL)。SpEL是一种强大的、简洁的装配Bean的方式,它通过运行期执行的表达式将值装配到Bean的属性或构造器参数中。语法类似于 EL:SpEL 使用 #{...} 作为定界符 , 所有在大括...原创 2019-03-03 14:27:17 · 619 阅读 · 0 评论 -
Spring 引用外部属性文件
Spring 提供了一个 PropertyPlaceholderConfigurer ,它能够在装载 Bean 时引用外部属性文件 。PropertyPlaceholderConfigurer 实现了 BeanFactoryPostProcessorBean 接口,所以它是一个 Bean 工厂后处理器。基本引用PropertyPlaceholderConfigurer 方式(XML 配置)...转载 2019-03-03 11:44:55 · 769 阅读 · 0 评论