05 2018 档案

摘要:动态资源和静态资源 拦截器可以算是aop的一种实现,专门拦截对动态资源的后台请求,也就是拦截对控制层的请求,主要用于判断用户是否有权限请求后台。拦截器不会拦截静态资源,如spring boot默认静态目录resources/static。请求期目录下的html,js,img都不会被拦截。将一些静态资 阅读全文
posted @ 2018-05-31 11:11 海盗船长 阅读(500) 评论(0) 推荐(0)
摘要:servlet、filter、listener,在spring boot中配置方式有两种:一种是以servlet3开始提供的注解方式,另一种是spring的注入方式。 servlet注解方式 servlet3.0以前,servlet、filter、listener需要在web.xml中配置,从ser 阅读全文
posted @ 2018-05-31 10:56 海盗船长 阅读(378) 评论(0) 推荐(0)
摘要:通常我们在某网站发送邮件验证码时,首先会提示验证码已发送,然而此时可能没有收到验证码,过几秒种才真正的收到。如果是同步会先验证发送是否成功然后再通知,如果是异步可以先通知用户已发送,并释放请求,然后再去异步处理。 @Async和@EnableAsync实现异步 控制层 服务层 同步:这是在一个控制层 阅读全文
posted @ 2018-05-31 10:31 海盗船长 阅读(318) 评论(0) 推荐(0)
摘要:添加依赖 在application.yml中设置发送账号 简单发送 发送含附件的 阅读全文
posted @ 2018-05-30 17:19 海盗船长 阅读(211) 评论(0) 推荐(0)
摘要:Spring Boot 内部采用的是Commons Logging进行日志记录,但是在底层为Java Util Logging、Log4J2、Logback等日志框架提供了默认配置。 logback 虽然spring boot有很多可用的日志框架,一般来说,使用spring boot 默认的logb 阅读全文
posted @ 2018-05-30 16:26 海盗船长 阅读(2015) 评论(0) 推荐(0)
摘要:继承spring-boot-parent 要成为一个spring boot项目,首先就必须在pom.xml中继承spring-boot-starter-parent,同时制定其版本 环境参数 在普通的maven项目中,需要在pom.xml中配置插件来修改jdk版本,utf-8编码等环境参数,在spr 阅读全文
posted @ 2018-05-30 15:22 海盗船长 阅读(501) 评论(0) 推荐(0)
摘要:数据源配置源码 这里截取org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration的部分源码,主要介绍Tomcat和Hikari连接池如何自动配置切换,其他数据源配置也是一样的原理 Hikari数据源配置,注解意思同上 默 阅读全文
posted @ 2018-05-30 15:02 海盗船长 阅读(698) 评论(0) 推荐(0)
摘要:druid druid是和tomcat jdbc一样优秀的连接池,出自阿里巴巴。除了连接池,druid哈hi有一个很实用的监控功能。 pom.xml 添加了以下依赖后,会自动用druid连接池替代默认的tomcat jdbc连接池 参数配置 在application.yml中配置spring.dat 阅读全文
posted @ 2018-05-30 14:20 海盗船长 阅读(1825) 评论(0) 推荐(0)
摘要:默认连接池 tomcat jdbc是从tomcat7开始推出的一个连接池,相比老的dbcp连接池要优秀很多,spring boot将tomcat jdbc作为默认的连接池,只要在pom.xml中引入了spring boot的jdbc组件,就会自动引入tomcat jdbc连接池。 默认参数 以下是o 阅读全文
posted @ 2018-05-30 12:27 海盗船长 阅读(1134) 评论(0) 推荐(0)
摘要:一对多 查询category中的某一条数据,同时查询该分类下的所有Product。 Category.java product.java dao层 service层 测试: 一对一:把上面的@many=@Many换成one=@One即可 修改Product.java 增加属性 dao 多对多:把多个 阅读全文
posted @ 2018-05-29 20:49 海盗船长 阅读(609) 评论(0) 推荐(0)
摘要:脚本SQL xml配置方式见mybatis讲解,下面是用<script>的方式把它照搬过来,用注解来实现。适于xml配置转换到注解配置 很明显,在java中写xml可读性和维护性太差,尤其 当sql很长时,这样写是很痛苦的。 在方法中构建SQL dao接口中是不能写实现的,所以这里借用内部类来生成动 阅读全文
posted @ 2018-05-29 17:31 海盗船长 阅读(801) 评论(0) 推荐(0)
摘要:ORM对比图 首先在pom.xml中添加引用 基本SQL操作 spring boot已经自动实现了mybatis所有配置,直接写dao接口即可 扫描Mapper 可以在配置类加上@MapperScan("com.david.dao") 注解,扫描dao包中的所有接口,替代在每个dao中写@Mappe 阅读全文
posted @ 2018-05-29 15:17 海盗船长 阅读(640) 评论(0) 推荐(0)
摘要:服务层和dao层的最终异常会交给controller处理,控制层的异常则会记录日志系统。 新建一个类用来处理异常,名字随便GlobalDefaultExceptionHandler.java,加上@ControllerAdvice注解 阅读全文
posted @ 2018-05-29 13:58 海盗船长 阅读(232) 评论(0) 推荐(0)
摘要:使用jdbcTemplate操作数据库 spring framework对数据库的操作在jdbc上面做了深层次的封装,通过依赖注入功能,可以将datasource注册到jdbcTemplate中,学习成本低,毕竟是jdbc的基础知识。 在pom.xml中添加jdbc模块和mysql数据库驱动 app 阅读全文
posted @ 2018-05-29 12:07 海盗船长 阅读(334) 评论(0) 推荐(0)
摘要:JPA 全称Java Persistence API,JPA通过JDK 5.0注解或xml描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 JPA是sun官方提出的java持久化规范,它为java开发人员提供了一种对象/关系映射工具来管理java应用中的关系数据。 持久化:把数据(内 阅读全文
posted @ 2018-05-29 11:06 海盗船长 阅读(519) 评论(0) 推荐(0)
摘要:application.properties application.properties是spring boot默认的配置文件,spring boot默认会在以下两个路径搜索并加载这个文件 src\main\resources src\main\resources\config 配置系统参数 在a 阅读全文
posted @ 2018-05-29 11:05 海盗船长 阅读(607) 评论(0) 推荐(0)
摘要:静态页面 spring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,如下 /static /public /resources /META-INF/resources 在resources建立一个static目录和index.html 阅读全文
posted @ 2018-05-29 11:04 海盗船长 阅读(663) 评论(0) 推荐(0)
摘要:热部署:当发现程序修改时自动启动应用程序。 spring boot为开发者提供了一个名为spring-boot-devtools的模块来使sring boot应用支持热部署,提高开发者的开发效率,无需手动重启spring boot应用程序。 devtools的原理 深层原理是使用了两个ClassLo 阅读全文
posted @ 2018-05-28 22:54 海盗船长 阅读(283) 评论(0) 推荐(0)
摘要:Rest接口 动态页面jsp早已过时,现在流行的是vuejs、angularjs、react等前端框架 调用 rest接口(json格式),如果是单台服务器,用动态还是静态页面可能没什么大区别,如果服务器用到了集群,负载均衡,CDN等技术,用动态页面还是静态页面差别非常大。 传统rest用法 用sp 阅读全文
posted @ 2018-05-28 17:26 海盗船长 阅读(784) 评论(0) 推荐(0)
摘要:Spring boot简介 spring boot是spring官方推出的一个全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程。 Spring boot特点 1.化繁为简,简化配置 2.嵌入的Tomcat,无需部署war文件 3.简化maven配置 4.自动配置spring 阅读全文
posted @ 2018-05-28 16:57 海盗船长 阅读(432) 评论(0) 推荐(0)
摘要:创建项目->maven->webapp->输入坐标->完成。 pom.xml index.html web.xml loginfaild.jsp login.jsp product/list.jsp product/edit product/add SqlMapConfig.xml springMV 阅读全文
posted @ 2018-05-27 21:59 海盗船长 阅读(3644) 评论(0) 推荐(2)
摘要:@RequestMapping 通过@RequestMapping注解可以定义不同的处理器映射规则。 @RequestMapping(value="item")或@RequestMapping("/item") 只有一个参数时,value可以省略不写,多个参数时,必须写value。value的值是一 阅读全文
posted @ 2018-05-27 18:53 海盗船长 阅读(840) 评论(0) 推荐(0)
摘要:在springMVC中,提交请求的数据是通过方法形参来接收的,从客户端请求的key/value数据,经过参数绑定,将key/value数据绑定到controller形参上,然后再controller就可以直接使用该形参。 默认支持的类型 springMVC有支持的默认参数类型,我们直接在形参上给出这 阅读全文
posted @ 2018-05-27 14:13 海盗船长 阅读(208) 评论(0) 推荐(0)
摘要:Srping Web Mvc和struts2都属于表现层框架,它是spring框架的一部分。 springmvc处理流程如下: 新建一个简单的springmvc程序-idea:https://www.cnblogs.com/wormday/p/8435617.html 1.src下新建文件夹com 阅读全文
posted @ 2018-05-27 12:28 海盗船长 阅读(307) 评论(0) 推荐(0)
摘要:输入映射和输出映射 Mapper.xml映射文件定义了操作数据库的sql,每一个sql是一个statement,映射文件是mybatis的核心。 parameterType输入类型 1.传递简单类型 Integer、String 使用#{}占位符 | ${}拼接字符 2.传递pojo对象 Produ 阅读全文
posted @ 2018-05-26 16:23 海盗船长 阅读(368) 评论(0) 推荐(0)
摘要:MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache 迁移到了 google,并改名为MyBatis,2013年迁移到Github。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注sql语句本身,而不需要花费精力 阅读全文
posted @ 2018-05-25 22:25 海盗船长 阅读(888) 评论(0) 推荐(1)
摘要:SSH框架:struts2 + spring + hibernate web层:struts2+jsp service层:javaBean dao层:hibernate spring:管理Action对象 javaBean对象 sessionFactory session维护以及aop事务 项目结构 阅读全文
posted @ 2018-05-25 16:42 海盗船长 阅读(808) 评论(0) 推荐(0)
摘要:spring整合jdbc spring中提供了一个可以操作数据库的对象(JDBCTemplate),对象封装了jdbc技术。 1.使用spring整合jdbc需要jdbc驱动、c3p0连接池、spring-jdbc、spring-tx事务包。 2.准备数据库 3.src下新建配置文件c3p0-con 阅读全文
posted @ 2018-05-24 17:58 海盗船长 阅读(245) 评论(0) 推荐(0)
摘要:使用注解配置spring 1.导入 spring-aop-5.0.6.RELEASE.jar包 2.为主配置文件引入新的命名空间 xmlns:context="http://www.springframework.org/schema/context" 3.在类中使用注解 注解后来又出现了三种,可以 阅读全文
posted @ 2018-05-24 15:04 海盗船长 阅读(212) 评论(0) 推荐(0)
摘要:spring介绍 spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架,它主要是为了解决企业应用开发复杂性而诞生的。 简单来说spring是一个一站式轻量级开源框架。 IOC:Inverse Of Control 反转控制 - 将我们创建对象的方式反转 以前对象的创建以及依赖关系 阅读全文
posted @ 2018-05-23 21:15 海盗船长 阅读(268) 评论(0) 推荐(0)
摘要:使用maven的必要性 1.maven使用本地仓库存储jar包,所有项目都会共用仓库中的同一份jar包。 2.maven可以解决版本兼容问题,自动引入所需的兼容版本。 3.maven可以很方便的删除或是升级一些jar包,只需要在配置文件中删掉或更改版本号即可。 4.maven内置web server 阅读全文
posted @ 2018-05-22 21:03 海盗船长 阅读(249) 评论(0) 推荐(0)
摘要:标签体系结构 jsp出现目的是为了取代servlet,结果逻辑代码,数据库代码都放到了jsp页面中。 为了解决jsp中代码过多的问题,struts2标签分为普通标签和UI标签。 使用struts2标签之前首先要引入标签库 普通标签 控制标签 iterator(迭代) if elseif else(判 阅读全文
posted @ 2018-05-22 15:50 海盗船长 阅读(141) 评论(0) 推荐(0)
摘要:struts2拦截器原理: 当请求action时,struts2会查找配置文件,并根据配置实例化相对的 拦截器对象,然后串成一个列表,然后一个一个的调用列表中的拦截器。 比如:某些页面必须登录才可以访问,可以在每个action执行处理逻辑之前先判断是否已登录,但这种做法不利于代码复用,所以将这些检查 阅读全文
posted @ 2018-05-22 14:43 海盗船长 阅读(183) 评论(0) 推荐(0)
摘要:OGNL表达式 OGNL对象试图导航语言。${user.addr.name}这种写法就叫对象试图导航。Struts框架使用OGNL作为默认的表达式语言 OGNL不仅仅可以试图导航,支持比EL表达式更加丰富的功能。 OGNL的jar包,在导入Struts包的同时,就已经包含OGNL的jar包了,直接使 阅读全文
posted @ 2018-05-22 11:44 海盗船长 阅读(208) 评论(0) 推荐(0)
摘要:结果处理 1.转发 type可以不写,默认就是转发 运行后浏览器地址不变 2.重定向 type="redirect" 就是重定向 运行后浏览器地址变为index.jsp了 3.转发到Action(不常用) 运行后地址不变 先执行hello 执行完毕后 再执行Add 4.重定向到Action 运行后地 阅读全文
posted @ 2018-05-21 18:27 海盗船长 阅读(243) 评论(0) 推荐(0)
摘要:struts2是一个基于mvc的web应用框架。struts2本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器层(Controller)来建立模型与视图的数据交互。 struts2使用优势:自动封装参数、参数校验、结果的处理(转发|重定向)、国际化、显示等待页面、表单防止 阅读全文
posted @ 2018-05-21 16:07 海盗船长 阅读(279) 评论(0) 推荐(0)
摘要:多表HQL Criteria(QBC)离线查询对象 查询优化策略 懒加载(延迟加载):使用hibernate查询一个对象的时候,查询其关联对象,应该如何查询。是hibernate的一种优化手段。 类级别查询 session对象的load方法默认就是延迟加载, 可以在对象对应的配置文件中 class节 阅读全文
posted @ 2018-05-20 21:46 海盗船长 阅读(1602) 评论(0) 推荐(0)
摘要:一对多|多对一 一个分类对应多个商品,一个商品只属于一个分类 创建分类表 products用set装,set特点值不能够重复 创建商品表 category表示所属分类 配置映射关系 Category.hbm.xml Product.hbm.xml 配置全局映射hibernate.cfg.xml 插入 阅读全文
posted @ 2018-05-20 16:12 海盗船长 阅读(427) 评论(0) 推荐(1)
摘要:Hibernate中的实体规则 创建实体类注意事项: 1.持久化类提供无参构造函数 2.成员变量私有 提供共有get set 方法 3.属性应尽量使用包装类 Integer、Float、Double等(如果用int 不赋值会默认0 如果Integer 不赋值默认null) 4.持久化类需要提供oid 阅读全文
posted @ 2018-05-19 16:21 海盗船长 阅读(156) 评论(0) 推荐(0)
摘要:什么是hibernate? hibernate是一个orm框架,实现了对JDBC的封装。通过xml文件来实现类和表之间的映射,这样就可以使用操作对象的方式来操作数据库。 官网:http://hibernate.org/ 这里使用最新的5.3版本,下载到本地。 hibernate框架搭建: 1.导入包 阅读全文
posted @ 2018-05-18 21:00 海盗船长 阅读(270) 评论(0) 推荐(0)
摘要:NoSQL NoSQL(Not Only Sql),不仅仅是SQL。非关系型数据库。 随着互联网的告诉发展,传统的关系型数据库在应付超大规模的数据,超大流量以及高并发时显得力不从心。 高并发:如秒杀系统,好多人同时访问数据库就是高并发。 高负载:如facebook,twitter这样的sns网站,每 阅读全文
posted @ 2018-05-17 23:12 海盗船长 阅读(193) 评论(0) 推荐(0)
摘要:安装javajdk 1.8 检查是否安装 rpm -qa | grep jdk rpm方式安装 下载java1.8 jdk http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/j 阅读全文
posted @ 2018-05-16 15:54 海盗船长 阅读(148) 评论(0) 推荐(0)
摘要:Lunux简介 Linux就是操作系统,如windows、mac。 LInux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。 Linux是由Linux Torvalds(林纳斯·托瓦兹)期初开发的,由于源代码的开放性,现在已经衍生出了成千上百种不同的 阅读全文
posted @ 2018-05-16 10:17 海盗船长 阅读(286) 评论(0) 推荐(0)
摘要:代理技术就是用来产生一个对象的代理对象的。 明星和经纪人,经纪人就是明星的代理人。当我们需要找明星表演时,不能直接找到刘德华,而是只能找到刘德华的代理人,因此刘德华这个代理人存在的价值就是拦截我们对刘德华的直接访问。 这个例子中核我们在开发中是一样的,我们在开发中之所以要产生一个对象的代理对象,主要 阅读全文
posted @ 2018-05-14 22:28 海盗船长 阅读(189) 评论(0) 推荐(0)
摘要:类加载器 类加载器就是加载字节码文件(.class) demo.java ->编译器->demo.class->类加载器 (将.class字节码文件加载到内存并且生成字节码对象Class)->可以进行反射 对Class对象在运行出结果之前进行动态的修改 类加载器的种类 有三种 不同类加载器加载不同 阅读全文
posted @ 2018-05-14 18:23 海盗船长 阅读(427) 评论(0) 推荐(0)
摘要:过滤器 Filter filter是对客户端访问资源的过滤,访问某个资源时,符合条件就通过,否则就不通过,并且可以对目标资源访问前后进行逻辑处理。 服务器创建时就创建了该filter对象,服务器关闭时 filter就销毁。 Filter接口有三个方法,并且这三个方法都是与filter生命相关的方法。 阅读全文
posted @ 2018-05-14 16:33 海盗船长 阅读(212) 评论(0) 推荐(0)
摘要:监听器 Listener 监听器就是坚挺某个对象的状态变化的组件 事件源:被监听的对象 --三个域对象 request session servletContext 监听器:监听事件源对象 事件源对象的状态的变化都会触发监听器 注册监听器:将监听器与事件源进行绑定 响应行为:监听器监听到事件源状态变 阅读全文
posted @ 2018-05-14 15:39 海盗船长 阅读(203) 评论(0) 推荐(0)
摘要:Json是存储和交换文本信息的语法,类似xml。 json比xml更小、更快,更容易解析。 json语法 数据在键值对中,用逗号分隔,{}保存对象,[]保存数组。 json对象 访问json对象 var user = {"name":"wangkai",age:18,sex:"男"}; user.n 阅读全文
posted @ 2018-05-14 14:01 海盗船长 阅读(184) 评论(0) 推荐(0)
摘要:程序运行时,router只配置登陆 首页404 等基本页面 使用路由 登陆操作 获取菜单 将菜单存到sessionStorage中,并且把菜单存储到vuex中,因为vuex一刷新就没了,所以要放在sessionStorage中 返回格式: 其中component存储的是字符串 需要转换为引入 vue 阅读全文
posted @ 2018-05-14 11:58 海盗船长 阅读(3944) 评论(0) 推荐(0)
摘要:条件查询 dao service userList servlet userList.jsp 列表分页 在domain中创建pageBean实体 在dao中 创建分页方法 service UserListForPage servlet web.xml userListForPage.jsp 阅读全文
posted @ 2018-05-11 16:40 海盗船长 阅读(7375) 评论(0) 推荐(0)
摘要:使用Idea创建项目 1.新建web application项目 Idea 选择 Java Enterprise -> web application 2.新版本没有web-inf文件夹 解决方法 进入project structure ->facets->点击小加号,添加web.xml 3.在we 阅读全文
posted @ 2018-05-11 15:47 海盗船长 阅读(963) 评论(0) 推荐(0)
摘要:事务就是要么一起成功,要么一失败。 mysql的事务:一条sql语句就是一个事务 默认就开启事务并提交事务 手动事务: start transaction-代表开启事务 commit-代表提交事务 rollback-代表回滚事务 start transaction; delete from user 阅读全文
posted @ 2018-05-10 15:12 海盗船长 阅读(134) 评论(0) 推荐(0)
摘要:会话技术 Cookie Session 从访问一个站点,到关闭不继续访问 称为一次会话过程。会话技术就是记录本次会话中客户端的状态与数据的。 会话技术分为cookie、session。 cookie:将数据存储在客户端本地,减少服务器端存储的压力,安全性不好,客户端可以清除cookie sessio 阅读全文
posted @ 2018-05-08 15:50 海盗船长 阅读(555) 评论(0) 推荐(0)
摘要:HTTP协议 Http,超文本传输协议是互联网上最广泛的一种网络协议,所有的www文件都必须遵守这个标准。 Http协议由http请求和http响应组成 http请求: 1.请求行 请求方式 POST、GET、PUT、DELETE等 请求的资源 /DemoEE/form.html 协议版本 http 阅读全文
posted @ 2018-05-07 11:04 海盗船长 阅读(424) 评论(0) 推荐(0)