随笔分类 - JAVAEE
摘要:1、缓存击穿问题及其原因 背景:用户向后端查询数据时先查询缓存是否存在,如果存在直接获取,如果不存在就去找数据库,然而数据库的查找是慢的,多查询时性能不佳。 缓存击穿原因:黑客向后端发送大量缓存中不存在的数据,导致后端查询缓存不到,转而去查询数据库,大量查询堆积在数据库,数据库可能会挂掉。 2、解决
阅读全文
摘要:一、http的注解配置 1、@SpringBootAplication=@SpringBootConfiguration(其实就是个@Configuration)+@EnableAutoConfiguration(能够自动配置的注解)+@ComponentScan(扫描组件) 2、@RequestM
阅读全文
摘要:传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。2、在开发中在.jav
阅读全文
摘要:一、概述 Restful技术是一种架构风格(Representational State Transfer)表现层状态转化,而不是一种编程标准。 之前前后端混在一起,前端通过mapping映射找到后端,给后端送入数据,而后端需要给前端发送一个字符串来产生一个应该返回的视图层页面,这使得前后端工作人员
阅读全文
摘要:在@controller中类的头部有一个@CrossOrigin注解。 @CrossOrigin是用来处理跨域请求的注解 先来说一下什么是跨域: (站在巨人的肩膀上) 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。 所谓同源是指
阅读全文
摘要:一、基本常用命令 select 选择数据库 0-15共16个库 keys 返回所有的键 keys mylist*代表取出所有mylist开头的键 exists 确认一个键存在不 del 删除一个键 expire 设置一个键的过期时间 expire addr 10 给addr键设置10秒存活时间 tt
阅读全文
摘要:在这里用到了#{},使用#时: 1、用来传入参数,sql在解析的时候会加上" ",当成字符串来解析 ,如这里 role_id = "roleid"; 2、#{}能够很大程度上防止sql注入; 延伸: 1、用${}传入数据直接显示在生成的sql中,如上面的语句,用role_id = ${roleId,
阅读全文
摘要:第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。MyBatis 参考资料官网:http://w
阅读全文
摘要:一、简介 MyBatis是iBatis的改名版,iBatis来源于“internet”和"abatis"的组合,是一个基于java的持久层的框架。iBatis提供的持久层框架包括SQL Maps和Data Access Object(dao) MyBatis是支持普通SQL查询,存储过程和高级映射的
阅读全文
摘要:一、数据绑定的相关注解 最基本的传值方法。 二、Spring Web MVC提供Model、Map或ModelMap让我们能去暴露渲染视图需要的模型数据。虽然此处注入的是三个不同的类型(Model model,Map model2,ModelMap model3),但是三者是同一个对象。 三、@Re
阅读全文
摘要:一、了解 Spring Web MVC是一种基于java,并实现了WebMVC设计模式的请求驱动类型的轻量级Web框架(基于请求驱动指的是就是使用请求-相应模型)。 该框架也是用了MVC架构模式的思想,将web层进行职责解耦。它的目的就是帮助我们简化开发。 Spring Web MVC的前端控制器为
阅读全文
摘要:一、xml的配置文件(application.xml) datasource标签配置数据库的链接,此处使用的是C3P0,也可以换成dbcp,但是使用德鲁伊时候要另外使用ini配置文件。 sessionFatory标签配置回话工厂,将datasource数据库连接放入工厂中,设置好其自动扫描的po层的
阅读全文
摘要:一、AOP简介 AOP是Aspect-Oriented Programming的缩写,即面向切面编程。利用oop思想,可以很好的处理业务流程,但是不能把系统中某些特定的重复性行为封装到模块中。例如,在很多业务中都需要记录操作日志,结果我们不得不在业务流程中嵌入大量的日志记录代码。无论是对业务代码还是
阅读全文
摘要:IOC(Inversion of Control):控制反转 以下以课程与老师的安排来介绍控制反转。 一个合理的课程编排系统应该围绕培训的内容为核心,而不应该以具体的培训老师为核心,这样才能在正常授课时可以随意选取合适的老师来上课,而非绑定到一个老师身上。 一、探索IOC 1、最紧耦合度的编法 老师
阅读全文
摘要:一、Hibernate的缓存机制 缓存cache是位于应用层与物理数据源之间临时存放复制数据的内存区域,其目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能。 Hibernate在查询数据时,首先会到缓存中查找,如果找到就直接使用,只有在缓存中找不到时才会从物理数据源中检索。因
阅读全文
摘要:一、查询所有的时候 不要写select * 注意:此处的Company不是表,而是映射过来的类。 二、取得单笔数据 方法为setMaxResults()和uniqueResult()方法。 三、带有参数的HQL语句 :p1,前面的冒号代表这是个变量。 四、取得多个字段,将取出的东西放在list中,前
阅读全文
摘要:三种连接都是以连接MySQl为例。 <!-- JDBC驱动程序 --> <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="connection.url">jdbc:m
阅读全文
摘要:一、立即检索 所谓立即检索就是立即装载和初始化检索方法指定的对象,即使Session关闭了,依然可以正常访问。立即检索策略的启用是通过在映射配置文件中将lazy实行值设置为false实现的。 通俗讲就是立即检索在加载时就把所有和主表关联的表加载到内存中,无论调不调用它们。 优点是快,缺点是占内存 注
阅读全文
摘要:一、@Entity 写在映射表的类上面,表示这是映射来的实体 二、@Id @Column(name = "fid", nullable = false) @Basic @Column(name = "fname", nullable = true, length = 10) 四、@OneToMany
阅读全文
摘要:前提:使用注解映射 一、一对一(夫妻关系表) 两个表:hus1和wife1表,外键为id,各自有名字hname和wname 映射得到两个类:Hus1和Wife1类 Hus1类(主表): Wife1类 对两个表进行操作: 二、一对多(父子关系表) 两个表:父亲表(father2)、儿子表(son2),
阅读全文

浙公网安备 33010602011771号