首页
赞助
时间轴
追番
留言
友人帐
关于
个人导航
更多
学习笔记
壁纸
Search
1
【台式机】2020-06-07,上半年618推荐配置(都是AMD)
953 阅读
2
21年下半年笔记本挑选
918 阅读
3
域名备案成功
789 阅读
4
2020.10 手机号码正则表达式
730 阅读
5
Mybatis缓存
695 阅读
日常
代码
❤心情
博客插件
电脑推荐
KMS服务
登录
Search
标签搜索
电脑推荐
组装电脑
博客插件
跨域访问错误
Maven
Mybatis
node.js
WebSocket
SpringBoot
Linux
跨域
网页背景效果
音乐播放器
看板娘
Pio插件问题
气泡通知
轻薄本
全能本
笔记本推荐
伪静态
旧梦未眠
累计撰写
71
篇文章
累计收到
13
条评论
今日撰写
0
篇文章
首页
栏目
日常
代码
❤心情
博客插件
电脑推荐
KMS服务
页面
赞助
时间轴
追番
留言
友人帐
关于
个人导航
学习笔记
壁纸
用户登录
登录
搜索到
33
篇与
的结果
2020-07-24
SpingMVC中Utils工具类静态方法调用Service层
引言之前在百度、CSDN上查询了各种方法,一直都是空指针异常,原因就是static问题。先上图。之前把service层用@PostConstruct赋值后就直接用静态去获取成Settings就是这里出的问题。解决对于定义的Static变量赋值问题应该把调用的service层以及获取数据全部放在init初始化里。就不会报错。对于方法而言就直接调用就行。下面是代码@Component public class MailConfig { @Autowired private SettingsService settingsService; public static MailConfig mailConfig; private static final String PROPERTIES_DEFAULT = "mailConfig.properties"; public static String host; public static Integer port; public static String userName; public static String passWord; public static String emailForm; public static String timeout; public static String personal; public static Properties properties; @PostConstruct public void init(){ mailConfig = this; mailConfig.settingsService = this.settingsService; try { MailSettings ms = JSON.parseObject(mailConfig.settingsService.getSettings().getMailSettings(), MailSettings.class); host = ms.getMailHost(); port = new Integer(ms.getMailPort()); userName = ms.getMailUsername(); passWord = ms.getMailPassword(); emailForm = ms.getMailUsername(); timeout = ms.getMailTimeout(); personal = ms.getPersonal(); }catch (Exception e) { e.printStackTrace(); } } public static void xx(){ mailConfig.settingsService.xx(); } }
2020年07月24日
527 阅读
1 评论
0 点赞
2020-07-05
Maven换阿里仓库
无论是IDEA自带的Maven仓库还是下载好的Maven,只需要找到settings.xml找到标签加入下面代码即可<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>aliyun maven</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
2020年07月05日
441 阅读
0 评论
0 点赞
2020-07-01
SpringMVC跨域访问问题
在Spring-mvc.xml中加入<!--跨域访问--> <mvc:cors> <mvc:mapping path="/**" /> </mvc:cors>
2020年07月01日
372 阅读
0 评论
0 点赞
2020-06-26
IDEA连接mysql时区问题
在Advanced里添加下面参数:NameValueserverTimezoneAsia/Shanghai
2020年06月26日
397 阅读
0 评论
0 点赞
2020-05-17
Mybatis缓存
简介查询 → 连接数据库 消耗资源 一次查询结果,暂存在一个可以直接取到的地方 → 内存:缓存 再次查询相同数据的时候,不用连接数据库,而是从缓存中读取。什么是缓存[Cache]?存在在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的问题。为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。什么样的数据能使用缓存?经常查询并且不经常改变的数据。【可以使用缓存】Mybatis缓存MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升查询效率。MyBatis系统中默认定义了两极缓存:一级缓存和二级缓存默认情况下,只有一级缓存开启。 (SqlSession级别的缓存, 也称为本地缓存)二级缓存需要手动开启和配置,他是基于namespace级别的缓存。为了提高扩展性,MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存。一级缓存一级缓存也叫本地缓存与数据库同一次会话期间查询到的数据会放在本地缓存中。以后如果需要获取相同的数据,直接从缓存中拿,没必要再去查询数据库。二级缓存二级缓存也叫全局缓存,一级缓存作用域太低了,所以诞生了二级缓存。基于namespace级别的缓存, 一个名称空间,对应一个二级缓存;工作机制:一个会话查询一条数据,这个数据就会被放在当前会话的一级缓存中;如果当前会话关闭了,这个会话对应的一级缓存就没了;但是我们想要的是,会话关闭了,一级缓存中的数据被保存到二级缓存中;新的会话查询信息,就可以从二级缓存中获取内容;不同的mapper查出的数据会放在自己对应的缓存(map)中。开启全局缓存步骤:开启全局缓存在mybatis-config.xml中添加<!--显示的开启全局缓存--> <setting name="cacheEnabled" value="true"/>在要使用二级缓存的Mapper.xml中开启<!--在当前Mapper.xml中使用二级缓存--> <cache/>也可以自定义参数<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>这个更高级的配置创建了一个 FIFO 缓存,每隔 60 秒刷新,最多可以存储结果对象或列表的 512 个引用,而且返回的对象被认为是只读的,因此对它们进行修改可能会在不同线程中的调用者产生冲突。evication:LRU– 最近最少使用:移除最长时间不被使用的对象。【默认】FIFO – 先进先出:按对象进入缓存的顺序来移除它们。SOFT – 软引用:基于垃圾回收器状态和软引用规则移除对象。WEAK – 弱引用:更积极地基于垃圾收集器状态和弱引用规则移除对象。测试问题:在Mapper.xml中直接声明"<cache/>"报错,我们需要将实体类序列化。Caused by: java.io.NoSerializbleException:com.jam.pojo.User在POJO的类中 implements Serializable执行结果Opening JDBC Connection ==> Preparing: select * from mybatis.user where id = ? ==> Parameters: 1(Integer) <== Columns: id, name, pwd <== Row: 1, jam, 123 <== Total: 1 User(id=1, name=jam, pwd=123) Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@2f0a87b3] Returned connection 789219251 to pool. Cache Hit Ratio [com.jam.dao.UserMapper]: 0.5 User(id=1, name=jam, pwd=123) true Process finished with exit code 0小结:只要开启了二级缓存,在同一个Mapper下就有效所有的数据都会先放在一级缓存中只有当会话提交或者关闭的时候,才会提交到二级缓存中。缓存原理缓存顺序:先看二级缓存中有没有再看一级缓存中有没有查询数据库
2020年05月17日
695 阅读
0 评论
0 点赞
1
...
3
4
5
...
7