02 2019 档案
摘要:在一些大型的项目中,通常会选择多数据库来满足一些业务需求,此处讲解使用springboot、mybatis和druid来配置多数据源 1、依赖配置 pom文件引入相关依赖 application文件加入多数据源配置 2、添加主数据源和其他数据源配置 主数据源 其中注解@Primary表示是主数据源
阅读全文
摘要:如图,获取user.png: 代码实现:
阅读全文
摘要:使用Jedis操作Redis常用的API 1.对String操作的命令 set(key, value):给数据库中名称为key的string赋予值value get(key):返回数据库中名称为key的string的value getset(key, value):给名称为key的string赋予上
阅读全文
摘要:事务管理一般有编程式和声明式两种,编程式是直接在代码中进行编写事物处理过程,而声名式则是通过注解方式或者是在xml文件中进行配置,相对编程式很方便。 而注解方式通过@Transactional 是常见的。我们可以使用@EnableTransactionManagement 注解来启用事务管理功能,该
阅读全文
摘要:1、CacheManager Spring Boot默认集成CacheManager,如下包所示: 可以看出springboot自动配置了 JcacheCacheConfiguration、 EhCacheCacheConfiguration、HazelcastCacheConfiguration、
阅读全文
摘要:1、事物四大特性(ACID) 2、事务的隔离级别 Read uncommitted 字面意思是读未提交,一个事务可以读取另一个未提交事务的数据,即出现脏读。 Read committed 字面意思是读提交,一个事务要等另一个事务提交后才能读取数据,也就是不可重复读(每次读取的结果不一样)。若有事务对
阅读全文
摘要:1、@CacheConfig 主要用于配置该类中会用到的一些共用的缓存配置。示例: 配置了该数据访问对象中返回的内容将存储于名为users的缓存对象中,我们也可以不使用该注解,直接通过@Cacheable自己配置缓存集的名字来定义。 2、@Cacheable 应用到读取数据的方法上,即可缓存的方法,
阅读全文
摘要:1、Memcached简介 Memcached是国外社区网站LiveJournal的开发团队开发的高性能分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度,提高可扩展性。 2、Memcached特点 基于C/S架构,协议简单 基于libev
阅读全文
摘要:1、Centos7 Redis一主二从三哨兵配置 Redis一主二从三哨兵环境搭建 2、接入过程 与集成redis单机不同的是jedis相关的配置做了修改,JedisPool换成了JedisSentinelPool,相关改动如下: application文件: jedis配置类: RedisClie
阅读全文
摘要:1、redis服务搭建 centos7 搭建redis服务 2、接入相关 pom文件依赖引入 其中使用jedis来开发,jedis集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理等。 application配置文件 jedis配置类 此处使用注解@Value来读取配
阅读全文
摘要:1、简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统。由于 Redis 的键包括 string,hash,list,set,sorted set,bitmap 和 hyperloglog,所以常常被称为数据结构
阅读全文
摘要:1、有时为了管理一些特定的配置文件,会考虑单独放在一个配置文件中,如redis.properties: 对于springboot框架来说,可以使用加入相关注解将配置文件解析成对应的对象,方便在代码中使用 这里主要使用了@Configuration,@ConfigurationProperties(p
阅读全文
摘要:1、delete 属于DML语言,每次删除一行,都在事务日志中为所删除的每行记录一项。产生rollback,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发,如果删除大数据量的表速度会很慢。 删除表中数据而不删除表的结构(定义),同时也不释放空间。 2、truncate 默认情况
阅读全文
摘要:有时在处理偏移量非常大的分页时候查询时,例如LIMIT 1000,10这样的查询,这时MySQL需要查询1010条记录然后只返回最后10条,前面1000条记录都被抛弃,这样的代价非常高。要优化这种查询,要么在页面中限制分页的数量,要么是优化大偏移量的性能。 优化此类分页查询的一个最简单的办法就是尽可
阅读全文
摘要:1、having当用到聚合函数sum,count后,又需要筛选条件时,就可以考虑使用having,因为where是在聚合前筛选记录的,无法和统计函数一起使用,而having在聚合后筛选记录,可以和统计函数一起使用。having是和group by组合着用的。 2、usingusing()用于两张表的
阅读全文
摘要:1、在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,示例:对列col1、列col2和列col3建一个联合索引 联合索引 index_col1_col2_col3 实际建立了(col1)、(col1,col2)、(col,col2,col3)三个
阅读全文
摘要:1. association-关联,用于一对一(如人与身份证)和多对一(如班级和学生) 2. collection-集合,用于一对多(如学生和班级)的关系
阅读全文
摘要:1. $ 将传入的数据直接显示生成在sql中,不会修改或转义字符串。如:order by $id$,如果传入的值是111,那么解析成sql时的值为order by 111, 如果传入的值是id,则解析成的sql为order by id.所以$方式一定程度上无法防止Sql注入。 $方式一般可用于传入数
阅读全文
摘要:对于一些大型的项目来说,将项目的各个模块理清并进行管理,便于后续项目的维护,使用maven管理是很方便的,它可以很好的构建模块来设计项目的整体结构,对一些小型的项目不建议使用 1、新建父maven模块(idea版本为2017.2) 选择maven类型 点击next,填写GroupId和Atifact
阅读全文
摘要:1、i18n介绍 i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件等)无需做大的改变就能够适应不同的语言和地区的需要。对程序来说,在不修改内部代码的情况下,能根据不
阅读全文
摘要:方式1、设置国际化的编码和你使用的编译器(IDEA之类)一致,如编译器为UTF-8则在application配置文件中添加 方式2、修改当前编译器的编码为UTF-8,之后将国际化文件中的乱码内容改为当前编码下的内容即可,IDEA具体设置如图所示: 快捷键ctrl+alt+s,在Editor->Fil
阅读全文
摘要:使用线程池的好处: 创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率 线程并发数量过多,抢占系统资源从而导致阻塞 对线程进行一些简单的管理 1、ThreadPoolExecutor的一个构造方法: public ThreadPoolExecutor(int coreP
阅读全文
摘要:1、JPA介绍 JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术 Spring data jpa是在JPA规范下提供了Re
阅读全文
摘要:#spring.thymeleaf.cache = true #启用模板缓存。 #spring.thymeleaf.check-template = true #在呈现模板之前检查模板是否存在。 #spring.thymeleaf.check-template-location = true #检查模板位置是否存在。 #spring.thymeleaf.content-type = text /...
阅读全文
摘要:1、解析工具类 测试: 源码参照:使用freemarker做邮件发送模板
阅读全文
摘要:1、pom依赖引入 2、application配置 3、实现TemplateDirectiveModel 前端文件: 用法:跟自定义macro用法一样,直接使用 <@xx></@xx> 来使用即可,值就直接在myTag 标签里传就可以了 流程:当访问前端页面时,会将自定义的标签及其值传到后台MyTa
阅读全文
摘要:FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} ${basketball.name?if_exists } //用于判断如果存在,就输出这个值 ${basketball.name?default(‘xxx’)}/
阅读全文
摘要:1、pom相关依赖引入 2、application配置 3、代码编写分页查询 对返回结果用PageInfo进行封装 UserService类 4、分页安全性问题 PageHelper 方法使用了静态的 ThreadLocal 参数,分页参数和线程是绑定的。 一般只要保证在 PageHelper 方法
阅读全文
摘要:1、pom文件依赖引入 2、IDEA配置 ctrl + shift + A,输入automatically,选择如图所示点击进入 然后ctrl + shift + alt + /,选择如下图所示点击进入 保存重启,之后修改文件进行测试即可
阅读全文
摘要:1、druid简介 Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid充当数据库连接池,可以监控数据库访问性能,可以获得SQL执行日
阅读全文
摘要:1、注解不生效 在shiro配置类中加上如下代码: 2、异常处理 过滤器必须要是AuthorizationFilter过滤器才能生效,即只有perms,roles,ssl,rest,port才是属于AuthorizationFilter,而anon,authcBasic,auchc,user是Aut
阅读全文
摘要:在spring1.0+的版本中,配置拦截器后是不会拦截静态资源的。其配置如下: 但是在使用spring2.0+时,配置拦截器之后,就会拦截静态资源访问,此时我们需要用对应版本的方式去解决,如下:
阅读全文
摘要:2.0.0之前使用: 后续版本使用:
阅读全文