Spring
让大家更好地了解一下spring框架
evan_qb
冰冻三尺,非一日之寒
展开
-
【Spring】使用AES算法加密数据库连接配置并使用密文访问数据库
一般我们都会在SSM项目中使用明文方式进行数据库的访问,然而这样做的方式不安全,容易泄露个人的信息一般的jdbc的配置是这样的:jdbc.username=rootjdbc.password=123456我们可以数据库的用户名和密码进行加密,这样就能大大增加系统的安全性例如:encrypt.jdbc.username=uKXp9J7+X8lEB0KRJrK5oQ==encryp...原创 2018-11-09 11:28:57 · 1213 阅读 · 1 评论 -
【Spring】使用自定义注解通过AOP记录用户操作日志
首先创建一个SpringBoot项目,项目目录如下引入AOP依赖,以及lombok日志依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.22&l...原创 2018-10-18 16:10:54 · 274 阅读 · 0 评论 -
【Spring】解决Filter不能注入Spring bean的问题
我们都知道Filter的优先级大于Servlet,而springMVC又是基于Servlet来进行注入bean的,所以这就导致了Filter无法注入bean接下来我们进行配置Filter:web.xml<filter> <filter-name>loginFilter</filter-name> <filter-class>...原创 2018-09-29 11:21:54 · 5920 阅读 · 9 评论 -
【Spring】SSM框架配置Redis进行缓存
此过程是在SSM框架搭建完毕之后进行的扩展首先引入redis依赖:<!-- redis --><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.1<原创 2018-09-11 11:20:51 · 1622 阅读 · 0 评论 -
【Spring】纯java实现AOP切面编程
首先导入相关jar包创建dao类IUserDaopackage cn.qblank.aop.dao;import org.springframework.stereotype.Component;@Componentpublic interface IUserDao { void add(); void delete();}创建dao实现类UserDa原创 2017-12-06 17:14:22 · 431 阅读 · 0 评论 -
【Spring】纯java实现Spring-hibernate整合
首先导入Spring-hibernate相应的jar包然后准备数据库连接的文件hibernate.properties还有jdbc.propertieshibernate.properties文件:进行hibernate方言和自动建表的配置hibernate.dialect=org.hibernate.dialect.H2Dialecthibernate.hbm2d原创 2017-12-06 20:21:03 · 322 阅读 · 0 评论 -
【Spring】SpringSecurity的使用
Spring Security是什么?Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为原创 2017-12-18 15:12:32 · 4854 阅读 · 2 评论 -
【Spring】SpringSecurity的过滤器执行流程
at position 1 of 12 in additional filter chain; firing Filter: 'WebAsyncManagerIntegrationFilter'at position 2 of 12 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter'原创 2017-12-19 11:26:02 · 3288 阅读 · 0 评论 -
【Spring】SSH依赖
<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/maven-v4_0_0...原创 2018-02-11 10:45:26 · 275 阅读 · 0 评论 -
【Spring】使用Spring的MultipartFile进行文件上传
public void upload(MultipartFile file, String uploadpath, String id,String num) { try { // 判断目录是否存在 File fold = new File(uploadpath + "/" + id); if (!fold.exists()) { fold.mkdirs(); ...原创 2018-03-21 11:11:36 · 753 阅读 · 0 评论 -
spring JdbcTemplate 查询,使用BeanPropertyRowMapper
应用:使用Spring的JdbcTemplate查询数据库,获取List结果列表,数据库表字段和实体类自动对应,可以使用BeanPropertyRowMapper。注意:自动绑定,需要列名称和Java实体类名字一致,如:属性名 “userName” 可以匹配数据库中的列字段 "USERNAME" 或 “user_name”。这样,我们就不需要一个个手动绑定了,大大提高了开发效率。org.sprin...转载 2018-03-21 15:10:24 · 561 阅读 · 0 评论 -
【Spring】Spring框架JdbcTemplate类中查询方法介绍
Spring框架中org.springframework.jdbc.core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,其他模板类都是基于它封装完成的。 Spring除了提供JdbcTemplate核心类外,还提供了基于JdbcTemplate实现的NamedParameterJdbcTemplate类用于支持命名参数绑定、 SimpleJdbcTem...转载 2018-03-21 15:13:27 · 937 阅读 · 0 评论 -
【springboot】springboot入门
首先创建一个maven项目pom.xml如下:<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://ma...原创 2018-06-25 23:24:22 · 754 阅读 · 0 评论 -
【springboot】springboot获取常用参数注解
@RequestMapping 访问路径默认get@GetMapping get访问路径@PostMapping post访问路径@RequestParam(value = "name",require=false,defaultValue = 0) 传统传参 url?name=111@PathVariable("id") rest传参 url/111...原创 2018-06-26 09:18:17 · 678 阅读 · 0 评论 -
【rest】基于rest风格的请求
GET /test 获取信息GET /test/id 通过id查询信息POST /test 创建信息PUT /test/id 通过id更新信息DELETE /test/id 通过id删除信息...原创 2018-06-26 09:23:05 · 218 阅读 · 0 评论 -
【springboot】springboot-jpa的使用
首先引入maven依赖:<!-- spring-data-jpa --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependenc...原创 2018-06-26 11:11:23 · 172 阅读 · 0 评论 -
【spring】logback日志配置-定时将每天产生的日志和错误输出到文件中
<?xml version="1.0" encoding="UTF-8" ?><configuration> <!--配置控制台输出的格式--> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">原创 2018-07-11 10:56:49 · 2720 阅读 · 0 评论 -
【spring】BeanUtils属性克隆copyProperties
先把spring那5个核心的jar包导入到项目中 spring-core-3.2.0.RELEASE.jar spring-beans-3.2.0.RELEASE.jar spring-context-3.2.0.RELEASE.jar spring-expression-3.2.0.RELEASE.jar新建一个Person类public class Person { ...转载 2018-07-17 14:11:56 · 565 阅读 · 0 评论 -
【spring-boot】idea实现热部署
第一步: 打开设置,勾选自动构建项目选项第二步:输入ctrl + shift + A 搜索Registry第三步:勾选compiler.automake.allow.when.app.running测试一波:同时我们也可以在pom.xml中加入如下依赖:<!-- 热部署模块 --> <dependency> ...原创 2018-07-23 23:07:47 · 141 阅读 · 0 评论 -
【springboot】实现通用状态
首先我们创建枚举类型PayStatusEnum@Getterpublic enum PayStatusEnum implements CodeEnum{ WAIT(0,"等待支付"), SUCCESS(1,"支付成功") ; /** 状态 */ private Integer code; private String message; ...原创 2018-07-24 00:21:23 · 652 阅读 · 0 评论 -
【Spring】自定义异常处理
每次系统出异常之后,我们不能每次都去看系统的报错信息,这样不一定会又快又准确地找到错误。这个时候,我们就需要定义一个自定义异常来帮助我们快速定位错误首先我们编写一个JsonData类进行处理json请求的异常处理@Datapublic class JsonData { /*true表示正常,false表示异常*/ private boolean ret; pr...原创 2018-08-08 11:22:57 · 320 阅读 · 0 评论 -
【Spring】校验工具validator对前端请求校验
主要用于校验前台传输过来的数据首先引入maven依赖<!-- validator --><dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1原创 2018-08-08 14:09:26 · 418 阅读 · 0 评论 -
【spring】递归遍历层级部门树
大体流程图如下:我们首先准备对应的sys_dept表用于测试mybatis查询所有数据:<!--查询所有部门--><select id="getAllDept" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from sys_d..原创 2018-08-09 17:32:55 · 3403 阅读 · 0 评论 -
【Spring】使用ThreadLocal获取当前用户的信息
引入:一提到获取用户信息,大部分人想到的都是通过session来获取用户信息,当要想获取到session,就需要获取对应的request,这样,就会增加代码的耦合性,基于以上缺陷,我们可以使用ThreadLocal来将当前的用户信息存入一个session,需要的时候,直接从全局的ThreadLocal中取出来即可接下来我们实践操作一波:创建一个RequestHolder类,定义相关的s...原创 2018-08-29 16:04:39 · 9350 阅读 · 7 评论 -
【spring】校验器@NotNull、@NotEmpty和@NotBlank的区别
区别@NotNull 和 @NotEmpty 和@NotBlank 区别@NotEmpty 用在集合类上面@NotBlank 用在String上面@NotNull 用在基本类型上原创 2018-08-31 14:21:15 · 1969 阅读 · 0 评论 -
【Spring】概述
组件/框架设计侵入式设计 引入了框架,对现有的类的结构有影响;即需要实现或继承某些特定类。 例如: Struts框架非侵入式设计 引入了框架,对现有的类结构没有影响。 例如:Hibernate框架 / Spring框架控制反转: Inver原创 2017-10-17 18:45:40 · 283 阅读 · 0 评论 -
【Spring】Spring开发准备
1.首先下载并引入对应核心jar包源码, jar文件:spring-framework-3.2.5.RELEASEcommons-logging-1.1.3.jar 日志spring-beans-3.2.5.RELEASE.jar bean节点spring-context-3.2.5.RELEASE.jar原创 2017-10-18 16:32:22 · 278 阅读 · 0 评论 -
【Spring】bean对象的创建
对象的中间有两种,一种是:通过工厂获得IOC容器,然后通过IOC容器创建对象,另一种是直接创建对象首先我们先创建一个User类package cn.qblank.hellospring;public class User { private String id; private String name; public String getId() { return id;原创 2017-10-18 16:44:44 · 343 阅读 · 0 评论 -
【Spring】IOC容器创建对象
SpringIOC容器,是spring核心内容。作用:创建对象 & 处理对象的依赖关系 IOC容器创建对象:创建对象, 有几种方式:1) 调用无参数构造器2) 带参数构造器3) 工厂创建对象 工厂类,静态方法创建对象 工厂类,非静态方法创建对象@Testpublic void test原创 2017-10-18 23:14:32 · 307 阅读 · 0 评论 -
【Spring】对象依赖关系
Spring中,如何给对象的属性赋值? 【DI, 依赖注入】1) 通过构造函数2) 通过set方法给属性注入值3) p名称空间4)自动装配(了解)5) 注解通过构造方法注入值 set方法注入值 set方法进行关系注入 使用内部bean注入值原创 2017-10-19 23:02:03 · 534 阅读 · 0 评论 -
【Spring】spring和struts框架整合
Spring,负责对象对象创建Struts, 用Action处理请求 Spring与Struts框架整合, 关键点:让struts框架action对象的创建,交给spring完成!步骤1:引入jar包spring-web相关包spring-core相关包struts相关包接下来配置XML文件bean-action.xm原创 2017-10-22 22:26:16 · 373 阅读 · 0 评论 -
【Spring】静态代理
首先我们先来理解下什么叫代理模式?代理模式:代理(Proxy)是一种设计模式, 提供了对目标对象另外的访问方式;即通过代理访问目标对象。 这样好处: 可以在目标对象实现的基础上,增强额外的功能操作。(扩展目标对象的功能)。代理模式的关键点:代理对象和目标对象接下来我们就来讲讲静态代理:优点:1)代理对象要实现和目标对象一样的接口2)可以做到不修改目标对象的前原创 2017-10-24 11:30:43 · 318 阅读 · 0 评论 -
【Spring】动态代理
动态代理: 1)代理对象,不需要实现接口; 2)代理对象的生成,是利用JDKAPI, 动态的在内存中构建代理对象(需要我们指定创建 代理对象/目标对象 实现的接口的类型) 3) 动态代理, JDK代理, 接口代理;JDK中生成代理对象的API:|-- Proxy staticObject newProxy原创 2017-10-24 15:08:21 · 241 阅读 · 0 评论 -
【Spring】cglib代理
我们都知道,动态代理和静态代理的目标对象都要实现接口,那么怎么样才能不实现接口就能实现代理呢?我们可以以子类的方式来实现代理:Ciglib代理Cglib代理,在内存中构建一个子类对象从而实现对目标对象功能的扩展。1)JDK的动态代理有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口的类,就可以使用CGLIB实现。2) CGLIB是一个强大的原创 2017-10-24 15:16:35 · 446 阅读 · 0 评论 -
【Spring】AOP编程
AOP编程概述: AOP: Aspect Oriented Programming 面向切面编程。 面向切面编程(也叫面向方面):是目前软件开发中的一个热点。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。 主要的意图是:将日原创 2017-10-24 15:55:55 · 286 阅读 · 0 评论 -
【Spring】c3p0连接池参数解释
3 30 1000 false <!--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么 属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试 使用。Default: null--> Test <!--获取连接失败将会引起所有等待连接池来获取连接的线转载 2017-10-26 14:54:03 · 370 阅读 · 0 评论 -
【Spring】spring对jdbc的优化
使用步骤:先引入jdbc相关jar包然后在db.properties中配置连接数据库的信息jdbc.user=rootjdbc.password=rootjdbc.driverClass=com.mysql.jdbc.Driverjdbc.jdbcUrl=jdbc:mysql:///day09jdbc.initPoolSize=5jdbc.maxPoolSize=10原创 2017-10-26 15:14:30 · 535 阅读 · 0 评论 -
【Spring】声明式事务管理
步骤:1.引入jar包spring-core相关jar包spring-jdbc相关jar包spring-aop相关jar包2.编码实现:先创建一个Dept类package cn.qblank.a_tx;public class Dept { private int deptId; private String deptName; public int原创 2017-10-27 22:18:04 · 302 阅读 · 0 评论 -
【Spring】Spring+hibernate整合
整合目的:将hibernate中的sessionFactory交给Spring创建将hibernate中的事务交给Spring的声明式事务管理整合准备:导入jar包:hibernate核心jar包spring-core相关包spring-aop相关包spring-orm相关包编写实体类Deptpackage c原创 2017-10-29 13:58:28 · 323 阅读 · 0 评论 -
【Spring】SSH整合
SSH整合:Spring和Struts的整合Spring和Hibernate的整合整合步骤:1) 引入SSH Jar文件 Struts核心jar Hibernate核心jar Spring Core 核心功能 Web 对web模块支持原创 2017-10-30 20:38:16 · 421 阅读 · 0 评论