自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 Spring 自定义异步池的实现(拓展)

Spring 自定义异步池的实现(拓展)为了让Spring中的异步池更好的服务于我们的业务,同时也尽量避免OOM,可以自定义线程池优化设计如下:关键代码如下:package com.cy.pj.common.config@Slf4j@Setter@Configuration@ConfigurationProperties("async-thread-pool")public class SpringAsyncConfig implements AsyncConfigurer{

2021-01-08 15:25:22 205

原创 Spring AOP事务处理

Spring 中事务简介事务定义事务(Transaction)是一个业务,是一个不可分割的逻辑工作单元,基于事务可以更好的保证业务的正确性。事务特性事务具备ACID特性,分别是:原子性(Atomicity):一个事务中的多个操作要么都成功要么都失败。一致性(Consistency): (例如存钱操作,存之前和存之后的总钱数应该是一致的。隔离性(Isolation):事务与事务应该是相互隔离的。持久性(Durability):事务一旦提交,数据要持久保存。说明:目前市场上在事务一致性方面,通

2021-01-07 15:12:15 274

原创 切面优先级设置实现

切面的优先级需要借助@Order注解进行描述,数字越小优先级越高,默认优先级比较低。例如:定义日志切面并指定优先级。 `@Order(1)@Aspect@Componentpublic class SysLogAspect { …}定义缓存切面并指定优先级:@Order(2)@Aspect@Componentpublic class SysCacheAspect { …}说明:当多个切面作用于同一个目标对象方法时,这些切面会构建成一个切面链

2021-01-07 15:02:05 336

原创 切入点表达式增强

切入点表达式增强Spring中通过切入点表达式定义具体切入点,其常用AOP切入点表达式定义及说明bean表达式(重点)bean表达式一般应用于类级别,实现粗粒度的切入点定义,案例分析:bean(“userServiceImpl”)指定一个userServiceImpl类中所有方法。bean("*ServiceImpl")指定所有后缀为ServiceImpl的类中所有方法。说明:bean表达式内部的对象是由spring容器管理的一个bean对象,表达式内部的名字应该是spring容器中某个bea

2021-01-05 15:19:17 150

原创 扩展业务织入增强分析、Spring AOP编程增强

扩展业务织入增强分析基于JDK代理方式实现假如目标对象有实现接口,则可以基于JDK为目标对象创建代理代理对象,然后为目标对象进行功能扩展,如图-6所示:基于CGLIB代理方式实现假如目标对象没有实现接口,可以基于CGLIB代理方式为目标织入功能扩展,如图-7所示:Spring AOP编程增强切面通知应用增强通知类型在基于Spring AOP编程的过程中,基于AspectJ框架标准,spring中定义了五种类型的通知(通知描述的是一种扩展业务),它们分别是:前置通知 (@Before)

2021-01-04 15:54:23 122

原创 SpringAOP快速实践

业务描述基于项目的核心业务,添加简单的日志操作,借助SLF4J日志API输出目标方法的执行时长代码package com.cy.pj.common.aspect;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Poin

2021-01-01 15:26:43 106

原创 SpringAop简介

AOP是一种设计思想是软件设计领域中的面向切面编程,他是面向对象编程的一种补充和完善 它以通过预编译方式和运行期动态代理的方式,实现在不修改源代码的情况下给程序动态添加额外功能的技术AOP与oop字面意思相近,但其实两者是面向不同领域的设计思想,实际项目中我们通常理解面向对象理解为一个静态过程(例如 一个系统有多少个模块,一个模块有哪些对象,对象有哪些属性),面向切面的运行期代理方式,理解为一个动态过程,可以再对象运行时植入一个拓展功能或控制对象的执行。AOP应用场景分析实际项目中通常会将系统分为两

2020-12-31 16:51:54 117

原创 request和response介绍

Request是代表Http请求信息对象,其中封装了浏览器向服务器发送的请求信息,将request作为参数传递给Servlet的service方法,在service方法处理请求的过程中,可以通过request对象获取请求相关的信息(例如:获取请求头信息、获取请求参数等)Response是代表Http响应信息的对象,其中将会封装服务器要发送给浏览器的响应信息,将response对象作为参数传递给service方法,在service方法处理请求的过程中,可以将要发送给浏览器的数据,先写入response对象中

2020-09-28 11:02:46 269

原创 Springmvc的简单入门案例

Controller类代码package com.tedu.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/*作用1:标识当前类属于Controller层 * 作用2:标识当前类的对象由spring对象创建 * @RequsetMapping注解在当前方法上声明的路径是不能重复的 * 如果cont

2020-09-22 15:18:22 134

原创 MVC设计模式

1.模式一:只使用JSP进行开发servlet:本质上是一段Java程序,处理业务逻辑,不适合想外输出html网页,通过response流一行一行输出到浏览器这个过程十分复杂HTML:用于开发网页 适合网页输出,Html是一个静态web资源 只能输出静态网页,无法展示动态数据JSP:可以开发网页,也可以在jsp中书写Java代码,通过Java展示动态数据JSP的出现解决了servlet不适合输出网页的问题,又解决了HTML无法展示动态数据的问题JSP负责的内容:(1)获取请求所携带的数据,对请

2020-09-21 20:28:18 162

原创 耦合示例、工厂解耦、spring解耦

工厂解耦的测试类package com.tedu.factory;import java.io.InputStream;import java.util.Properties;/** * --------------------------------------------------------- * Bean: 可重用组件(计算机英语) * JavaBean:使用Java语言编写的可重用组件,例如:service层、dao层等 * JavaBean:通常分为业务Bean和实体Bean

2020-09-20 17:42:22 147

原创 Spring框架的介绍

spring简介什么是Spring?spring是分层的JavaSE及JavaEE应用于全栈的轻量级开源框架,以IoC(Inverse Of Control:控制反转/反转控制)和AOP(Aspact Oriented Programming:面向切面编程)为核心,提供了表现层SpringMVC和持久层Spring JDBC以及业务层事务管理等众多模块的企业级应用技术,还能整合开源世界中众多著名的第三方框架和类库,逐渐成为使用最多的JavaEE企业应用开源框架。SSH : Struts2 Spring

2020-09-18 22:07:02 176

原创 Mapper接口开发

EmpMapper配置信息<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- namespace一般指定为当前文件的所在包路径+文件名 将来在程序中通过[ namespace + id ]定位到执行哪一

2020-09-18 21:22:16 281

原创 Mybatis占位符、动态标签练习

测试类代码如下//#{}占位符 @Test public void testFindById() { //执行Sql语句,返回结果 Integer id=2; Emp emp=session.selectOne("EmpMapper.findById", id); System.out.println(emp); } @Test public void testInsert2() { //执行Sql语句,返回结果 //将参数封装到map中 Map<String,

2020-09-18 11:26:42 200

原创 mybatis的增删改

mybatis的测试类代码package com.tedu.mtbatis;//编写mybatis的快速入门程序import java.io.IOException;import java.io.InputStream;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.sessi

2020-09-15 16:22:15 103

原创 mybatis快速入门程序

mybatis的快速入门程序测试类代码如下:package com.tedu.mtbatis;//编写mybatis的快速入门程序import java.io.IOException;import java.io.InputStream;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.iba

2020-09-15 15:25:24 142

原创 mybatis框架

Mybatis介绍什么是MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL语句 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索以及释放资

2020-09-14 20:41:34 103

原创 MySQL中的事务、事务的并发性问题

在默认的情况下,Mysql每执行一条sql语句,都是一个单独的事务,如果需要在一个事务中包含多条SQL语句,那么需要手动开启事务和结束事务开启事务:start transaction结束事务:commit(提交事务)或者rollback(回滚事务)在执行SQL语句之前,先执行start transaction,这就开启了一个事务(事务的起点),然后就可以执行多条SQL语句,最后要结束任务,commit表示提交,即事务中多条SQL语句产生的影响持久化到数据库中,或者rollback,表示回滚,即回滚到事

2020-09-13 17:16:41 239

原创 数据库事务、ACID属性

事务及四大特性数据库事务(Database Transaction),是指作为 单个逻辑工作单元执行的一系列操作,要么完全执行,要么都不执行简单的来说:事务就是将一堆的sql语句绑在一起执行,要么都执行成功,要么都执行失败,都执行成狗才算成功,否则就恢复到SQL语句执行之前的状态下面以银行转账为例,A转100块到B的账户,这至少需要两条SQL语句:l 给A的账户减去100元;update 账户表 set money=money-100 where name='A';l 给B的账户加上100

2020-09-12 21:26:23 397

原创 Cookie和Session的区别

Session和Cookie都属于会话技术,都可以用来保存会话产生的数据,但由于两者的原理不同,两者的应用场景也不同Cookie的特点:(1)cookie是将会话产生的数据保存在浏览器客户端,属于客户端技术(2)cookie将数据保存在客户端浏览器,容易随着客户的操作导致cookie的丢失和窃取,因此保存的数据不太稳定也不安全。数据存储在客户端,对服务端没有影响,可以将数据保存很长时间,因此Cookie适合长时间保存数据但是安全性不高(3)浏览器对于Cookie的大小和数量都有限制,一般推荐每一个站

2020-09-12 19:11:14 102

原创 Session的工作原理及应用——通过session实现加入购物车和支付功能

Session的工作原理总结:(1)session是将会话产生的数据保存在服务端,属于服务端技术(2)session是一个域对象,session保存了一个map集合,往session存数据本质上就是把数据保存的map集合上(3)通过session.setAttribute方法将数据保存到session的map集合中,通过session.getAttribute将数据从map集合中取出来Session作为域对象Session是一个域对象,因此session中也提供了存取数据的方法。sessio

2020-09-12 16:44:54 1173

原创 Cookie的常用方法、删除Cookie的方式

删除浏览器中的Cookie在cookie的API中没有提供直接将cookie删除的方法, 可以通过别的方式间接删除cookie代码示例:删除名称为cart的cookie: 可以向浏览器再发送一个同名的cookie(即名称也叫cart),并设置cookie的最大生存时间为零,由于浏览器是根据cookie的名字来区分cookie,如果前后两次向浏览器发送同名的cookie,后发送的cookie会覆盖之前发送的cookie,而后发送的cookie也设置了生存时间为零,因此浏览器收到后也会立即删除!//创建一

2020-09-12 15:33:55 9156 2

原创 案例-实现购物车的简单功能:加入购物车、支付功能

html网页代码如下<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>商品列表</title></head><body> <h3>点击下面的商品链接, 可以将商品加入购物车</h3> <!-- http://localhost/13-cookie/in

2020-09-12 15:08:30 2135

原创 会话管理、cookie的API及应用

什么是会话当浏览器发送请求访问服务器,一直到访问浏览器结束,浏览器关闭为止,这期间浏览器和服务器之间产生的所有请求和相应加在一起成为浏览器和服务器的一次会话一次会话中会产生数据,如何保存会话中产生的数据(1)已登录的状态下,在一次购物中,将商品信息保存到购物车中,其实就是讲信息保存到数据库中(2)没有登录的状态下,将商品加入购物车,将商品信息保存到cookie或者session中可以使用cookie或者session保存会话中的数据cookie原理及应用总结(1)cookie是将会话产生的

2020-09-11 20:44:23 236

原创 案例:模拟查询所有门店功能

创建一个Servlet程序,用于处理查询所有门店信息请求public class DoorListServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,

2020-09-11 10:29:39 337

原创 request和response介绍、实现请求转发、域对象

request和responseRequest是代表Http请求信息对象,其中封装了浏览器向服务器发送的请求信息,将request作为参数传递给Servlet的service方法,在service方法处理请求的过程中,可以通过request对象获取请求相关的信息(例如:获取请求头信息、获取请求参数等)Response是代表Http响应信息的对象,其中将会封装服务器要发送给浏览器的响应信息,将response对象作为参数传递给service方法,在service方法处理请求的过程中,可以将要发送给浏览器的

2020-09-11 10:26:57 1136

原创 Servlet概述、Servlet继承关系、Servlet调用过程

Servlet概述什么是Servlet?Servlet:Server Applet,服务器端的Java程序,是由SUN公司提供的一门动态Web资源开发技术Servlet本质上其实就是一段Java程序。和之前的Java程序不同的,Servlet程序是无法独立运行的,必须将Servlet程序放在服务器中,由服务器调用才可以执行!静态Web资源:任何人在任何条件下访问同一个网页,看到的都是相同的效果,这样的网页叫做静态Web资源。(比如百度首页、tmooc首页)动态Web资源:在不同的访问条件下,访问

2020-09-07 16:03:58 335

原创 HTTP协议概述

什么是HTTP协议?HTTP协议就是用于规定浏览器和服务器之间通信的方式、规则主要规定了浏览器给服务器发送请求信息的格式以及规定了服务器给浏览器发送响应信息的格式** HTTP工作时遵循的基本原则(了解):(1) 一次请求只对应一次响应(2) 请求只能由浏览器发起, 服务器只能被动的等待请求, 根据请求作出回应/响应。HTTP协议详解HttpWatch: 针对IE浏览器提供的一个监听工具,用于监听浏览器和服务器通信的内容。HTTP请求1、请求行GET /news/hello.htm

2020-09-05 22:52:47 251

原创 虚拟主机和Web应用

虚拟主机和Web应用web应用web应用的目录结构news(目录,Web应用)|-- 其他目录: 放在news根目录下或者其他目录下的资源文件, 浏览器可以直接访问|-- WEB-INF目录: 放在这个目录下的资源文件是受保护的, 浏览器不能直接访问(不是不能访问, 而是不能直接访问, 可以转发访问) |-- classes目录, 用于存放编译后的class文件 |-- lib目录, 用于存放web应用所依赖的jar包 |-- web.xml文件, 用于存放和Web应

2020-09-05 22:32:21 239

原创 tomcat下载、安装、启动配置、目录结构

服务器概述服务器:分为服务器硬件和服务器软件,在硬件服务器上(计算机)安装了服务器软件,才可以对外提供服务(1)服务器硬件:是指在互联网上具有独立IP的计算机,通常配置比较好。自己的计算机一般是动态IP(2)服务器软件:就是一个计算机程序,tomcat服务器软件。服务器软件分为很多类型,比如:ftp服务器,数据库服务器,邮件服务器,web服务器web服务器( 1)web服务器是指驻留在互联网上的某种类型的计算机程序,当浏览器访问服务器,请求服务器上的文件时,服务器会立刻处理该请求,并将请求的文件相

2020-08-29 15:20:06 257

原创 jQuery案例

好友分组案例<!DOCTYPE HTML><html><head><meta charset="utf-8"/><title>仿QQ好友分组</title><style type="text/css"> table{border:#09f 1px solid;width:100px;border-collapse:collapse;margin:15px 10px;width:10%;margin:20px 2

2020-08-25 21:58:51 266

原创 jQuery选择器

基本选择器$("div") -- 选中所有的div元素$("span") -- 选中所有的span元素 $(".mini") -- 选中所有class值为mini的元素(class值为mini的元素可能是任何元素)$("span.mini") -- 选中所有class值为mini的span元素 $("#one") -- 选中id为one的元素 $("div,span,.mini,#one") -- 选中所有的div元素,以及所有的span元素,以及所有class值为mini

2020-08-25 21:56:30 154

原创 jQuery简介、引入、文档就绪事件。

jQuery简介什么是jQuery(了解)jQuery是一门轻量的、免费开源的JS函数库,主要作用是用于简化JS代码轻量的:代码或项目对该技术的依赖程度,依赖程度越低,这个技术越轻,反之,依赖程度越高,这个技术越重。推荐使用轻量级的技术框架jQuery的核心思想:“写的更少,但做的更多”5.1.2 jQuery的优势(了解)(1)可以极大的简化JS代码,例如:JS获取元素:var d = document.getElementById("demo1");jQuery获取元素:$("#

2020-08-24 21:15:53 325

原创 DOM操作-网页换肤、JS获取元素、JS增删改总结

网页换肤案例代码:<html><head><meta charset="utf-8"/><title>网页换肤</title><style type="text/css"> body{font-size:18px;font-family:"微软雅黑";} hr{border:1px solid yellow;} a{font-size:17px;font-weight:500;} a:hover {color:#009

2020-08-23 16:31:15 452

原创 DOM操作-电灯案例、 网页换肤、增删改元素

DOM操作DOM: (Document Object Model)文档对象模型,DOM是由W3C组织制定的一种处理HTML(包括xml)文件的标准APIDOM提供了对整个HTML文档的访问模型,将文档作为一个树形结构,树的每个节点都表示了一个HTML标签或者标签中的文本。在JS中,是将每一个HTML元素、属性、内容都当成一个一个的JS对象,利用对象的方法和属性,可以方便的访问、修改、添加、删除HTML中的元素、属性和内容4.3.1 案例:电灯开关点击电灯可以实现开/关灯,代码实现如下:&l

2020-08-22 22:00:19 278

原创 JavaScript简介、引入JavaScript的三种方式

JavaScript简介JavaScript,简称JS,由NetScape(网景)公司提供的一门语言JS是一门嵌入在网页中执行的脚本语言,专门用于实现网页交互。JS嵌入在网页中,由浏览器负责解析并执行。为网页添加各种各样的动态效果或者为表单添加校验,目的是为了提供更好的用户体验。JS和其他语言一样,有自身的数据类型、表达式、运算符、语句等程序的基本组成部分。JS目前已经被广泛的应用于Web开发。JS特点和优势(了解)1、特点:(1)JS是一门直译式的语言,直接执行的就是源代码。是一边解释一

2020-08-22 12:12:01 1574

原创 简单小练习实战代码 html5+css

html代码如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>京淘注册页面</title> <!--引入样式表文件--> <link rel="stylesheet" href="regist.css"/></head><body> <!--头

2020-08-19 22:25:00 793

原创 常用属性总结

常用属性总结文本属性1.text-align: 设置元素内文本的水平排列方式,常用取值为:left,默认值,居左center,居中right,居右2、text-indent:设置元素内文本首行缩进,单位:像素、百分比3、text-decoration:设置文本的下划线样式,常用取值为:none:没有下划线underline:表示有下划线4、letter-spacing:设置字符间距,常用取值:normal像素值字体属性font-size: 设置字体大小font-weight:

2020-08-19 21:22:11 267

原创 CSS选择器

CSS选择器所谓的选择器就是能够在html中帮助我们选中元素进行修饰的一门技术。标签名选择器根据标签(元素)的名称来选择指定名称的标签进行样式的修饰!格式: 标签名/元素名{ 若干css属性… }示例:/* ----- 1.标签名选择器练习 -----将所有span标签的背景颜色设置为#efbdef, 设置字体大小为22px,字体加粗;*/span{ /* 选中当前html中所有的span元素 */ background: #efbdef; font-size:22px;

2020-08-19 20:58:31 179

原创 CSS概述、引入css的三种方式

什么是CSSCSS: (Cascading Style sheets) 层叠样式表,用于修饰、美化网页的一门语言。使用css设置样式,可以将设置样式的css代码和展示数据的html代码进行分离,并且可以实现代码的服用。增强网页的展示能力。总结:css就是用于美化、渲染网页的一门技术在HTML中引入CSS这种是通过标签上的style属性为当前标签设置样式,代码示例<!-- 1.通过标签上的style属性给div设置样式 边框:2px solid red 字体大小:26

2020-08-18 22:30:30 395

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除