一.AOP简介 1.1 什么是AOP AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构. OOP(Object Oriented Programming)面向对象编程 我们都知道OOP是一种编程思想,那么AOP也是一种编程思想,编程思想主要的内容就是指导程序员该如何编写程序,所以它们两个是不同的编程范式. 1.2 AOP作用 作用:在不惊动原始设计的基础上为其进行功能增强. 1.3 AOP核心概念 为了能更好的理解AOP的相关…
一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容. 咱们现在web程序大都基于三层架构来实现. 浏览器发送一个请求给后端服务器,后端服务器现在是使用Servlet来接收请求和数据 如果所有的处理都交给Servlet来处理的…
一.AOP切入点表达式 对于AOP中切入点表达式,总共有三个大的方面,分别是语法格式.通配符和书写技巧. 1.1 语法格式 首先我们先要明确两个概念: 切入点:要进行增强的方法 切入点表达式:要进行增强的方法的描述方式 对于切入点的描述,我们其实是有两种方式的,先来看下面的例子 描述方式一:执行com.itheima.dao包下的BookDao接口中的无参数update方法 execution(void com.itheima.dao.BookDao.update()) 描述方式二:执行com.…
一.需求分析 需求: 对百度网盘分享链接输入密码时尾部多输入的空格做兼容处理. 问题描述: 点击链接,会提示,请输入提取码,如下图所示 当我们从别人发给我们的内容中复制提取码的时候,有时候会多复制到一些空格,直接粘贴到百度的提取码输入框 但是百度那边记录的提取码是没有空格的 这个时候如果不做处理,直接对比的话,就会引发提取码不一致,导致无法访问百度盘上的内容 所以多输入一个空格可能会导致项目的功能无法正常使用. 此时我们就想能不能将输入的参数先帮用户去掉空格再操作呢? 答案是可以的,我们只需要在…
前面的博客我们写AOP仅仅是在原始方法前后追加一些操作,接下来我们要说说AOP中数据相关的内容,我们将从获取参数.获取返回值和获取异常三个方面来研究切入点的相关信息. 前面我们介绍通知类型的时候总共讲了五种,那么对于这五种类型都会有参数,返回值和异常吗? 我们先来一个个分析下: 获取切入点方法的参数,所有的通知类型都可以获取参数 JoinPoint:适用于前置.后置.返回后.抛出异常后通知 ProceedingJoinPoint:适用于环绕通知 获取切入点方法返回值,前置和抛出异常后通知是没有返…
http://www.hongyanliren.com/2014m12/22797.html 1: 通知(advice): 就是你想要的功能,也就是安全.事物.日子等.先定义好,在想用的地方用一下.包含Aspect的一段代码2: 连接点(joinPoint): spring允许你通知的地方,很多,基本每个方法的前.后,或抛出异常时都可以是连接点. spring 只支持方法连接点. 其它如AspectJ还可以让你在构造器或属性注入时都行.3: 切入点(pointcut): 一个类,15个方法,就是…
任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素.  JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. 二.JSP表达式 JSP脚本表达式(expression)用于将程序数据输出到客户端     语法:<%= 变量或表达式 %>     举例:输出当前系统时间: 1 <%= new java.util.Da…
一.环境准备 先来准备下环境: 创建一个Maven项目 pom.xml添加Spring的依赖 <dependencies>    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context</artifactId>        <version>5.2.10.RELEASE</version…
之前的一篇博客是关于载入粗三维模型的,见http://blog.csdn.net/giser_whu/article/details/43452703,这个地方还存在着不能载入纹理的问题,一直没呢解决.那么WW怎样载入经常使用的三维模型格式(3ds.obj.skp)呢.通过一番搜索,了解到WW能够载入collada的dae格式的三维模型.而且还能够载入kml\kmz文件.那么WW载入三维模型的方法就出来了:首先将其它格式三维模型转换为kmz或kml文件,再载入.这里我是从su的三维模型库中下载的…
之前的一篇博客是关于加载粗三维模型的,见http://blog.csdn.net/giser_whu/article/details/43452703,这个地方还存在着不能加载纹理的问题,一直没呢解决.那么WW如何加载常用的三维模型格式(3ds.obj.skp)呢,通过一番搜索,了解到WW可以加载collada的dae格式的三维模型,并且还可以加载kml\kmz文件,那么WW加载三维模型的方法就出来了:首先将其他格式三维模型转换为kmz或kml文件,再加载.这里我是从su的三维模型库中下载的sk…
一.类相关属性 接口BlockingQueue<E>定义: public interface BlockingQueue<E> extends Queue<E> { boolean add(E e); boolean offer(E e); void put(E e) throws InterruptedException; boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedExcepti…
Spring为了使用注解简化开发,并没有提供构造函数注入.setter注入对应的注解,只提供了自动装配的注解实现. 1.环境准备 首先准备环境: 创建一个Maven项目 pom.xml添加Spring的依赖 <dependencies>    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context</artifa…
一.Spring整合Mybatis思路分析 1.1 环境准备 步骤1:准备数据库表 Mybatis是来操作数据库表,所以先创建一个数据库及表 create database spring_db character set utf8; use spring_db; create table tbl_account(   id int primary key auto_increment,   name varchar(35),   money double ); 插入测试数据如下 步骤2:创建项目…
一.Spring事务简介 1.1 相关概念介绍 事务作用:在数据层保障一系列的数据库操作同成功同失败 Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败 数据层有事务我们可以理解,为什么业务层也需要处理事务呢? 举个简单的例子, 转账业务会有两次数据层的调用,一次是加钱一次是减钱 把事务放在数据层,加钱和减钱就有两个事务 没办法保证加钱和减钱同时成功或者同时失败 这个时候就需要将事务放在业务层进行处理. Spring为了管理事务,提供了一个平台事务管理器PlatformTr…
一.请求参数 请求路径设置好后,只要确保页面发送请求地址和后台Controller类中配置的路径一致,就可以接收到前端的请求,接收到请求后,如何接收页面传递的参数? 关于请求参数的传递与接收是和请求方式有关系的,目前比较常见的两种请求方式为: GET POST 针对于不同的请求前端如何发送,后端如何接收? 1.1 环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring…
一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 <?xml version="1.0" encoding="UTF-8"?> ​ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.…
SpringMVC接收到请求和数据后,进行了一些处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户. 比如:根据用户ID查询用户信息.查询用户列表.新增用户等. 对于响应,主要就包含两部分内容: 响应页面 响应数据 文本数据 json数据 因为异步调用是目前常用的主流方式,所以我们需要更关注的就是如何返回JSON数据. 一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMV…
一.拦截器概念 讲解拦截器的概念之前,我们先看一张图: (1)浏览器发送一个请求会先到Tomcat的web服务器 (2)Tomcat服务器接收到请求以后,会去判断请求的是静态资源还是动态资源 (3)如果是静态资源,会直接到Tomcat的项目部署目录下去直接访问 (4)如果是动态资源,就需要交给项目的后台代码进行处理 (5)在找到具体的方法之前,我们可以去配置过滤器(可以配置多个),按照顺序进行执行 (6)然后进入到到中央处理器(SpringMVC中的内容),SpringMVC会根据配置的规则进行…
一.REST简介 REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格 当我们想表示一个网络资源的时候,可以使用两种方式: 传统风格资源描述形式 http://localhost/user/getById?id=1 查询id为1的用户信息 http://localhost/user/saveUser 保存用户信息 REST风格描述形式 http://localhost/user/1 http://localhost/user 传统方式…
一.事务配置 上面这些属性都可以在@Transactional注解的参数上进行设置. readOnly:true只读事务,false读写事务,增删改要设为false,查询设为true. timeout:设置超时时间单位秒,在多长时间之内事务没有提交成功就自动回滚,-1表示不设置超时时间. rollbackFor:当出现指定异常进行事务回滚 noRollbackFor:当出现指定异常不进行事务回滚 思考:出现异常事务会自动回滚,这个是我们之前就已经知道的 noRollbackFor是设定对于指定的…
一. 配置文件格式 我们现在启动服务器默认的端口号是 8080,访问路径可以书写为 http://localhost:8080/books/1 在线上环境我们还是希望将端口号改为 80,这样在访问的时候就可以不写端口号了,如下 http://localhost/books/1 而 SpringBoot 程序如何修改呢?SpringBoot 提供了多种属性配置方式 application.properties server.port=80 application.yml server: port:…
201871010106-丁宣元 <面向对象程序设计(java)>第十五周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11995615.html 作业学习目标 (1) 掌握菜单组件用途及常用API: (2) 掌握对话框组件用途及常用API: (3) 学习设计简单应用程序的GUI. 正文内容: 第一部分:总结第十…
一.标准CRUD使用 对于标准的CRUD功能都有哪些以及MyBatisPlus都提供了哪些方法可以使用呢? 我们先来看张图: 1.1 环境准备 这里用的环境就是Java开发学习(四十)----MyBatisPlus入门案例与简介中使用的环境 二.新增 在进行新增之前,我们可以分析下新增的方法: int insert (T t) T:泛型,新增用来保存新增数据 int:返回值,新增成功后返回1,没有新增成功返回的是0 在测试类中进行新增操作: @SpringBootTest class Mybat…
一.多环境配置 在工作中,对于开发环境.测试环境.生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配置,将环境的配置改为线上环境的. 来回的修改配置会很麻烦,而 SpringBoot 给开发者提供了多环境的快捷配置,需要切换环境时只需要改一个配置即可.不同类型的配置文件多环境开发的配置都不相同,接下来对不同类型的配置文件进行说明 1.1 yaml文件 在 application.yml 中使用 -…
<Java开发学习大纲文档>V7.0简介: 本文档是根据企业开发所需要掌握的知识点大纲进行总结汇编,是Java开发工程师必备知识体系,系统化学习针对性非常强,逻辑分析能力非常清晰;技术方面覆盖非常广泛全面,从编程环境安装开始切入,第一阶段从Java基础(Java核心基础+面向对象+多线程+常用类+IO+GUI+网络编程+常用实例)入门,第二阶段深入了解JavaWeb(Oracle.MySQL.MongoDB.MySQL数据库的优化.HTML5.CSS3.JavaScript.JQuery[AJ…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第二十五章:生产者与消费者线程详解 下一章 "全栈2019"Java多线程第二十六章:同步方法生产者与消费者线程 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第十五章:当后台线程遇到finally 下一章 "全栈2019"Java多线程第十六章:同步synchronized关键字详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异常第十五章:异常链详解 下一章 "全栈2019"Java异常第十六章:Throwable详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&qu…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第八十五章:实现接口中的嵌套接口 下一章 "全栈2019"Java第八十六章:嵌套接口可以多继承吗? 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第七十五章:内部类持有外部类对象 下一章 "全栈2019"Java第七十六章:静态.非静态内部类访问权限 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习…