自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringMVC视图和视图解析器

视图和视图解析器视图:请求处理方法执行后,最终返回一个ModelAndView对象,对于那些返回String,View或者ModelMap等类型处理方法,SpringMVC也会在内部将它们装配成一个ModelAndView对象,它包含了逻辑名和模型对象的视图。视图解析器:SpringMVC借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可以是JSP,也可以是Excel等各种表现形式的视图。视图视图的作用是渲染模型数据,将模型里的数据以某种形式呈现给客户。为了实现视

2020-10-06 00:13:32 166 1

原创 SpringMVC响应数据传出

SpringMVC输出模型数据概述提供了一下几种途径输出模型数据ModelAndView:处理方法返回值类型为ModelAndView时,方法体即可通过该对象添加模型数据Map即Model:入参为org.springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map中的数据会自动添加到模型中。@SessionAttribute:将模型中的某个属性暂时存到HttpSession中,以便多个请求

2020-10-04 23:44:53 378

原创 SpringMVC请求数据传入

请求数据传入Spring MVC框架会将HTTP请求的信息绑定到相应的方法入参中,并根据方法的返回值类型做出相应的后续处理。RequsetParam注解在处理方法入参处使用@RequestParam可以把请求参数传递给请求方法value:参数名required:是否必须。默认为true,表示请求参数中必须包含对应的参数,若不存在,将抛出异常。defaultValue:默认值,当没有传递参数时使用该值代码演示:<a href="book?age=10">Book</a&g

2020-10-03 23:20:51 333

原创 SpringMVC与REST风格

REST风格REST:即Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它的结构清晰,符合标准,容易理解,扩展方便。• 具体说,就是 HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET 用来获取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源。注意:浏览器的form标签只支持GET与POST请求,而PUT,DELETE等请求方法并不支持

2020-10-03 01:13:28 156

原创 SpringMVC之@RequestMapping映射

@RequsetMapping映射请求注解SpringMVC使用@RequsetMapping注解可以为控制器指定处理那些URL请求。@RequsetMapping可以定义在控制器的类上以及方法定义处标记在类上:提供初步的请求映射信息,相当于WEB应用的跟目录标记在方法上:提供进一步的细分映射信息。相当标记在类上的URL若类上未标记@RequsetMapping,则方法处标记的URL相当于WEB应用的跟目录作用:DispatcherServlet截获请求后,就通过控制器上@RequsetMa

2020-09-29 00:08:37 211

原创 设计模式之备忘录模式

备忘录模式备忘录模式:在不破坏封装新得前提下,捕获一个对象得内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式类图originator:对象(需要保存状态的对象)Menento : 备忘录对象,负责保存多个备忘录对象。Caretaker :守护者对象,负责保存多个备忘录对象。备忘录模式简单实现备忘录对象:/** * 备忘录对象 * @author gz * @date 2020/9/28-0:18 */public class Meme

2020-09-28 00:44:21 102

原创 SpringMVC简单入门使用

SpringMVCSpring MVC是Spring为展现层提供的基于MVC设计理念的优秀Web框架,是目前最主流的MVC框架之一。支持REST风格的URL请求。Spring框架结构图:简单使用SpringMVC:HelloWorld1.创建普通的Maven项目,然后右键项目 Add Framework Support中添加Web Applicable 4.0版本。2.在WEB-INF的web.xml中配置DispatcherServlet<servlet> &lt

2020-09-27 21:19:47 97

原创 MyBatis-逆向工程

MyBatis GeneratorMyBatis Generator(MBG),是一个专门为 MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对象的映射文件,接口,以及bean类。支持基本的增删改查,以及QBC风格的条件查询。但是表连接,存储过程等这些复杂的sql的定义需要我们手动编写。MBG如何使用1.先导入MBG依赖:<dependency> <groupId>org.mybatis.generator</groupId>

2020-09-24 23:01:21 62

原创 设计模式之观察者模式

观察者模式观察者模式:对象之间多对一的依赖的一种设计方案。观察者模式UML类图观察模式的简单实现Observer:public interface Observer { //修改数据 void update(float temperature,float pressure,float humidity);}public class ConcreteObserver implements Observer { private float temperature; p

2020-09-24 16:17:29 52

原创 MyBatis缓存

缓存MyBatis内置了一个强大的事务性查询缓存机制,它可以非常方便的配置和定制。MyBatis有两种缓存,一级缓存和二级缓存。一级缓存一级缓存即本地缓存,作用域默认为sqlSession。当Session flush或close后,该Session中的所有Cache将被清空。本地缓存不能被关闭,但可以调用clearCahe()来清空本地缓存。同一次会话期间只要查询过的数据都会保存在当前SqlSession的Map中。一级缓存失效的四种情况:不同的SqlSession对应不同的一级缓存同一个

2020-09-23 13:23:37 70

原创 设计模式之访问者模式

分派分派是指运行环境按照对象的实际类型为其绑定对应方法体的过程。在学习访问者模式之前我们需要了解双分派。双分派:在选择一个方法时,不仅仅要根据消息接收者的运行时型别,还要根据参数的运行时类别例子:public class Father { public void accept(Execute execute){ execute.method(this); }}public class Son extends Father{ @Override

2020-09-22 16:46:46 82

原创 MyBatis的动态SQL

动态SQL动态SQL是MyBatis的强大特性之一。在MyBatis中需要借助OGNL的表达式。ifchoose(when,otherwise)trim(where set)foreachifif:判断语句<select id="findActiveBlogWithTitleLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != nu

2020-09-21 23:46:48 82

原创 设计模式之命令模式

命令模式命令模式:在软件设计中,我们经常需要像某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求得操作是哪个,我们只需要在程序运行时指定具体得请求接收者即可。命令模式UML类图解析:Invoker 是调用者Command:是命令角色,需要执行的所有命令都在这,可以是接口或者抽象类Receiver:接受者角色,知道如何实施和执行一个请求相关的操作ConcreteCommand:将一个接收者对象与一个动作绑定,调用接收者相应的操作,实现execute命令模式的简单实现Rece

2020-09-21 20:28:46 89

原创 MyBatis映射文件的ResultMap处理

select元素Select元素来定义查询操作Id唯一标识符。需要喝接口的方法名一致。parameterType参数类型。可以不传,MyBatis会根据TypeHandle自动推断resulTyp返回值类型。别名或者全类名,如果返回的是集合,定义集合中元素的类型。不能喝resultMap同时使用。Select 元素的属性:查询返回集合类型1.查询返回List类型接口代码: /** * 根据name查询同名的用户 * @param name * @retu

2020-09-21 09:57:34 215

原创 设计模式之模板方法模式

模板方法模式模板方法模式:在一个抽象类公开定义了执行他的方法模板,他的子类可以按照需要重写方法实现,但调用将以抽象类中定义的方法进行。模板方法的UML类图模板方法的简单实现Cofee类:public abstract class Coffee { public void templateMethod(){ prepare(); add(); make(); } public void prepare(){

2020-09-20 15:54:56 59

原创 设计模式之动态代理

代理模式代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样做的好处是,可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。代理模式种类:静态代理,动态代理(JDK代理),Cglib代理。静态代理静态代理:需要定义接口或者父类,被代理对象与代理对象一起实现接口或者继承相同父类。静态代理UML类图:代码实现:接口类:public interface Student { void add();}被代理类:public cl

2020-09-19 23:26:26 1459

原创 设计模式之享元模式

享元模式享元模式:运用共享技术支持大量细粒度的对象。常用于系统底层开发,解决系统的性能问题,向数据库连接池,里面都是创建好的连接对象,在这些连接对象中我们需要的则直接拿来用,避免重新创建。经典用用场景:池技术。享元模式UML图享元模式简单实现User类:public class User { private String name; public User(String name) { this.name = name; } public St

2020-09-19 00:07:16 65

原创 MyBatis映射文件的参数处理

单个参数传递可以接受基本类型,对象类型,集合类型的值。这种情况MyBatis克直接使用这个惨数,不需要经过任何处理。代码演示UserDao接口代码: /** * 根据id查询用户信息 * @param id * @return */ User queryForId(Integer id);UserDaoMapper.xml代码:<select id="queryForId" resultType="com.gz.mybatis01.User

2020-09-18 20:08:33 102

原创 设计模式之外观模式

外观模式外观模式:,也叫过程模式,外观模式为子系统的一组接口提供一个一致的界面,此模式定义一个高层接口,这个接口是的这一子系统更加容易使用。外观模式UML类图外观模式的简单实现Tv类:public class Tv { public void on(){ System.out.println("开电视"); } public void off(){ System.out.println("关电视"); }}Light类:

2020-09-17 21:46:14 102

原创 设计模式之组合模式

组合模式组合模式:又被称为部分整体模式,他创建了对象组得树形结构,将对象组合合成树状结构以表示“整体-部分”得层次关系。组合模式UML图组合模式简单实现OrganizationComponent类:public abstract class OrganizationComponent { private String name; private String des; public OrganizationComponent(String name, String de

2020-09-16 22:06:13 86

原创 MyBatis-全局配置文件

MyBatisMyBatis的配置文件结构:properties属性settings设置typeAliases类型命名typeHandle类型处理器objectFactory对象工厂piugins插件environments环境databaseProvider数据库厂商标识mapper映射器properties属性配置properties:引入外部properties文件 <mapper resource="com/gz/mybatis01/UserDaoMapper.x

2020-09-16 16:44:31 84

原创 设计模式之装饰者模式

装饰者模式定义:动态的将新功能附加到对象上。在对象功能扩展方面,他比继承更有弹性。装饰者模式也体现了开闭原则。UML类图结构装饰者模式简单实现代码实现:DrinkComponent类:public interface DrinkComponent { void drink();}Coffee类:public class Coffee implements DrinkComponent { public void drink() { System.out.

2020-09-15 20:48:45 55

原创 设计模式之桥接模式

桥接模式桥接模式:将实现与抽象放在不同的层次中,是的两个层次可以独立变化。结构型设计模式。原型类图解析原理类图:Client类:桥接模式的调用者抽象类(Abstraction):维护了Implementor,两者是聚合的关系。充当桥接类RefinedAbstraction:是抽象类的子类代码实现软件类://抽象类public abstract class SoftWare { public abstract void run();}//子类public class C

2020-09-14 17:01:04 67

原创 设计模式之适配器模式

适配器模式适配器模式:将某个类的接口转换为客户端期望的另一个接口表示,主要目的式兼容性,让原本因接口不匹配不能在一起工作的两个类可以协同工作。适配器模式可分为三类:类适配器对象适配器接口适配器角色的定义需要被适配者:可以是类,对象,接口。被称为src(source)适配器:Adapter。最终的输出:dst(destination)适配器模式的过程大致为:src>>adapter>>dst类适配器基本流程:Adapter类,通过继承src类,实现dst接口

2020-09-13 22:19:32 70

原创 设计模式之建造者模式

建造者模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。具体细节:产品类:一般是一个较为复杂的对象,在创建过程中比较复杂,一般会有较多的代码量。抽象建造者:引入抽象建造者的目的,是为了将建造的具体过程交给子类实现,可以扩展。建造者:实现抽象建造者的方法。调用者:负责调用建造者来生产产品。建造者模式的简单例子UML类图:代码实现:House代码:产品类public class House { //房子地基 priva

2020-09-13 00:06:01 71

原创 设计原型之原型模式

原型模式定义与理解定义:有些对象的创建过程较为复杂,而且有时候需要频繁创建,原型模式通过给一个原型对象来指明所要创建的对象类型。然后用复制这个原型对象的方法创建更多同类型的对象,这就是原型模式。原型模式简单实现需要去实现Cloneable接口,在JVM中只有实现这个接口的类才能被拷贝,否则会抛出CloneNotSupportedException异常。重写Object类中的clone方法,Object类是所有类的父类,而Object类中的clone方法是返回对象的一个拷贝。在重写的clone方法

2020-09-12 01:17:20 116

原创 设计模式之工厂模式

什么是工厂模式工厂设计模式:它是一种创建型模式。工厂模式可以帮我们创建对象,去代替new操作的一种设计模式。将实例化对象的代码提取出来,放到一个类中统一管理喝维护,到达著项目的依赖关系的解耦。从而提高项目的扩展和维护性。工厂设计模式:工厂方法模式(简单工厂模式是工厂方法模式的特例)。抽象工厂模式。简单工厂模式简单工厂模式的UML类图:代码设计:产品类://抽象产品类public abstract class AoDi { public AoDi(){}}//具体产品类

2020-09-11 01:03:56 63

原创 Spring如何与数据库交互(JdbcTemplate)

JdbcTemplate概念JdbcTemplate:Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作。使用Spring操作数据库1.导入依赖包:使用MAVEN项目导入依赖 <!--测试Junit依赖--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId>

2020-09-10 17:54:22 637

原创 设计模式之单例模式

单例设计模式介绍类的单例设计模式:就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。并且该类只提供一个取得对象实例的方法(静态方法)单例模式特点:单例类只能由一个实例。单例类必须自己建立自己的唯一实例。单例类必须对外提供这个唯一实例。单例模式的实现单例模式有7中时间方式:饿汉式(两种)懒汉式(三种)双重检查静态内部类枚举饿汉式1.饿汉式(静态常量):class Singleton{ //防止被实例化 private Singleto

2020-09-10 00:01:38 69

原创 设计模式的七大原则

设计模式设计模式可以更好的解决耦合度,内聚合以及可维护性,可扩展性,重用性,灵活性等问题。设计模式的七大原则:单一职责原则接口隔离原则依赖倒转原则里氏替换原则开闭原则迪米特法则合成复用原则单一职责原则定义:一个类只负责一项职责。降低类的复杂程度。提高类的可读性,可维护性。接口隔离原则定义:客户端不需要依赖它不需要的接口,一个类对另一个类的依赖建立在最小的接口上。依赖倒转原则定义:高层模块不应该依赖底层模块,两者都依赖抽象。中心思想是面向接口编程。里氏替换原则定义:所有引

2020-09-09 00:09:51 77

原创 AOP底层实现原理

实现原理AOP底层实现原理:动态代理。基于接口的代理,使用JDK动态代理。基于类的代理,使用CGLIB动态代理。JDK动态代理简单实现JDK动态代理:创建一个接口:public interface UserService { /** * 添加方法 */ void add();}创建实现类:public class UserServiceImpl implements UserService { public void add() {

2020-09-08 15:44:29 2794

原创 AOP操作详解

什么是AOPAOP(Aspect-OrientedProgramming):面向切面编程。利用AOP可以对业务逻辑的各个部分进行隔离,从而是的业务逻辑各部分之间的耦合度降低,提高程序的可用性,同时提高了开发的效率。AOP基本概念切面(Aspect):通常是一个类,里面可以定义切点和通知。连接点(JointPoint):程序执行过程中明确的点,类中可以被增强的方法。通知(Advice):AOP在特定的切入点上执行的增强处理。切入点(Pointcut):就是带有通知的连接点,在程序中主要体现为书写

2020-09-08 02:21:39 659

原创 IOC操作Bean管理(基于注解方式)

注解注解:注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值)。使用注解,注解作用再类上面,方法上面,属性上面。使用注解目的:简化XML配置。使用注解创建对象1.Component:作用把当前类对象存到Spring容器中。属性value,用于指定bean的id,如果不写默认当前类名首字母小写。2.Controller:一般用于表现层。3.Service:一般用于业务层4.Repository:一般用在持久层。例子:使用注解创建一个对象。开始组件扫描:XML文件

2020-09-06 17:15:28 136

原创 Spring的Bean管理(基于XML)

注入集合类型的属性注入集合类型:注入数组,LIst,Map集合类型属性。<1.创建类,定义集合属性public class Book { private Book [] book; private List<Book> list; private Map<Integer,Book> map; private Set<Book> set; public Book[] getBook() { return

2020-09-05 19:36:40 132

原创 IOC详解

IOC概念什么是IOC:控制反转,把对象创建和对象间的调用过程,交给Spring进行管理。使用IOC可以降低耦合度。IOC底层原理:XML解析,工厂模式,反射。图解IOC底层原理:IOC思想基于IOC容器完成的,IOC容器底层就是对象工厂Spring提供IOC容器实现两种方式:1.BeanFactory:IOC容器的基本实现,是Spring内部的使用接口,不提供开发人员使用。加载配置文件的时候不会去创建对象,在获取对象使用才去创建对象。2.ApplictionContext:Bean

2020-09-04 23:51:00 2102

原创 Spring5框架初级使用

Spring框架Spring是轻量级的开源的JavaEE框架,可以解决企业应用开发的复杂性。Spring有两个核心部分:IOC:控制反转,把创建对象过程交给Spring进行管理。Aop:面向切面,不修改源代码进行功能的增强。Spring入门:1.创建一个Maven项目在pom.xml中配置Spring依赖。 <dependency> <groupId>org.springframework</groupId>

2020-09-02 23:08:13 142

原创 Filter过滤器

Filter过滤器Filter过滤器:它是JavaWeb的三大组件之一,它的的作用是,拦截请求,过滤响应。拦截请求常见场景:权限检查日记操作事务管理Filter的实现Filter过滤器的使用步骤实现Filter接口实现过滤方法doFilter()到web.xml中配置Fliter的拦截路径代码实现public class MyFilter implements Filter {//doFilter方法专门用于拦截请求,可以做权限检查public void doFilter

2020-09-01 17:47:50 77

原创 Session会话

Session机制Session(会话):用来保存用户的整个会话,常见会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户信息,session是通过在服务端记录信息确定用户信息。如何创建获取Session创建获取Session方法都是request.getSession();第一次调用是创建,之后调用都是获取创建好的Session对象。判断Session是不是刚创建出来的:isNew();true表示刚创建的,false获取之前创建的。每个会议都有一个I唯一D值,

2020-08-31 10:38:27 246

原创 Cookie详解

什么是CookieCookie特点:Cookie是服务器通知客户端保存键值对的一种技术客户端有了Cookie之后,每次请求都发给服务器每个Cookie的大小都不能超过4KBCookie的创建Cookie cookie = new Cookie("key1","value");//创建Cookie对象respone.add(cookie);//通知客户端保存对象服务器获取Cookie:req.getCookies(); 返回的Cookie对象。Cookie如何修改方案1: //

2020-08-31 00:38:25 408

原创 详解请求转发与重定向

请求转发请求转发:服务器收到请求后,从一个资源专挑到另外一个资源的操作。//x表示请求转发的地址,请求转发必须要以斜杠/开头,表示http://ip:port/工程名/,映射到IDEA代码的 web目录下 req.getRequestDispatcher("/x").forward(req.resp)请求转发的特点:浏览器的地址没有改变它们是一次请求他们共享Request域中的数据可以转发到WEB-INF目录下不可以访问工程外的资源请求重定向请求重定向是指客户端给服务器发请求

2020-08-29 11:12:06 1014

空空如也

空空如也

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

TA关注的人

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