![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 77
一小步一大步
不平凡的事遇多了也就平凡了
展开
-
spring的一些常用的注解
注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解有Autowired、Resource、Qualifier、Service、Controller、Repository、Component。Autowired是自动注入,自动从spring的上下文找到合适的bean来注入Resource用来指定名称注入Qualifier和Autowired配合使用,指定bean的名称S转载 2017-07-07 17:19:14 · 270 阅读 · 0 评论 -
命令模式
命令模式(Command Pattern)是一种数据驱动的设计模式,请求以命令的形式封装在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。例如,电视机遥控器(命令发送者)通过按钮(具体命令)来遥控电视机(命令接收者),还有计算机键盘上的“功能键”等。意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:...原创 2019-03-05 13:57:14 · 399 阅读 · 0 评论 -
外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。何时使用: 1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。 2、定义系统...原创 2019-02-25 13:34:56 · 138 阅读 · 0 评论 -
代理模式
代理模式(Proxy Pattern),一个类代表另一个类的功能。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或...原创 2019-02-28 17:32:57 · 280 阅读 · 0 评论 -
组合模式
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。意图:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,...原创 2019-02-18 11:49:59 · 416 阅读 · 0 评论 -
装饰器模式
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。何时使用:在不想增加很多子类的情况下扩展类。如何解决:将具体功能职责划...原创 2019-02-22 16:38:41 · 805 阅读 · 0 评论 -
桥接模式
桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。意图:将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。何时使用:实现系统可能有多个角度分类,每一种角度都可能变化。如何解决:把这种多角度分类分离出来,让它们...原创 2019-01-18 16:03:13 · 1043 阅读 · 0 评论 -
适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。何时使用:1、系统需要使用现有的类,而此类的接口不符合系统的需要。2、想要建立一个...原创 2019-01-17 15:57:36 · 180 阅读 · 0 评论 -
单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。主要解决:一个全局使用...原创 2018-12-25 16:49:30 · 54342 阅读 · 13 评论 -
享元模式
享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。例如,围棋和五子棋中的黑白棋子,图像中的坐标点或颜色,局域网中的路由器、交换机和集线器,教室里的桌子和凳子等。这些对象有很多相似的地方,如果能把它们相同的部分提取出来共享,则能节省大量的系统资源,这就是享元模式的产生背景。意图:运用共享技术有效地支持大量细粒度的对象。主要解决:在有大量对象时...原创 2019-02-26 15:18:07 · 189 阅读 · 0 评论 -
解释器模式
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。主要解决:对于一些固定文法构建一个解释句子的解释器。何时使用:如果一种特定类型的问题发生的频率足够高...原创 2019-03-06 17:25:39 · 2605 阅读 · 0 评论 -
模板方法模式
在模板方法模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。例如,一个人每天会起床、吃饭、做事、睡觉等,其中“吃饭”和“做事”的内容每天可能不同。意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新写了这一方法。何时使用:有...原创 2019-04-16 11:11:12 · 2669 阅读 · 0 评论 -
状态模式
在状态模式(State Pattern)中,类的行为是基于它的状态改变的。如人的情绪有高兴的时候和伤心的时候,不同的情绪有不同的行为,当然外界也会影响其情绪变化。意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。何时使用:代码中包含大量与对象状态有关的条件语句。如何解决...原创 2019-04-03 10:30:41 · 281 阅读 · 0 评论 -
观察者模式
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象;MVC 模式中的模型与视图的关系;拍卖的时候,拍卖师观察最高标价,然后通知给其他竞价者竞价等。意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考...原创 2019-04-02 11:08:52 · 247 阅读 · 0 评论 -
策略模式
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。例如:出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区...原创 2019-04-11 11:16:55 · 6185 阅读 · 0 评论 -
备忘录模式
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。何时使用:很多时候我们总是需要记录一个对象的内部状态,这样做的目的就...原创 2019-04-01 17:24:38 · 139 阅读 · 0 评论 -
中介者模式
中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。例如,在 MVC 框架中,控制器(C)就是模型(M)和视图(V)的中介者;意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。主要解决:对象...原创 2019-03-18 16:41:16 · 1516 阅读 · 2 评论 -
迭代器模式
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。何时使用:遍历一个聚合对象。如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。...原创 2019-03-18 10:53:27 · 146 阅读 · 0 评论 -
责任链模式
责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推,发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求。例如:公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工...原创 2019-03-04 16:22:59 · 198 阅读 · 0 评论 -
原型模式
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。主要解决:在运行期建立和删除原型。何时使用:1、当一个系统应该独立于它的产品创建,构成和表示时。2、当要实例化的类是在运行时刻指定时,例如,通过动态装载。3、为了避免创建一个与产品类层次平行的工厂类层次时。4、当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能...原创 2019-01-03 15:57:35 · 192 阅读 · 0 评论 -
工厂模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象...原创 2018-12-20 11:38:34 · 281 阅读 · 1 评论 -
jsp获取当前地址栏的地址
如何在jsp中获取地址栏的地址呢?有如下方式:一、EL表达式1. ${requestScope['javax.servlet.forward.request_uri']} 2. ${pageContext.request.getAttribute("javax.servlet.forward.request_uri")} 二、java脚本获取原创 2017-08-17 13:43:31 · 4021 阅读 · 0 评论 -
Spring集成Quartz定时任务框架介绍和Cron表达式详解
Spring集成Quartz定时任务框架介绍和Cron表达式详解在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等。我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码。使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集转载 2017-08-17 17:00:30 · 147 阅读 · 0 评论 -
在使用spring+springMVC+hibernate遇到java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
在spring+springMVC+hibernate框架的项目中遇到java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 问题说的是类型转换异常,如果使用原生sql语句进行query查询时,hibernate是不会自动把结果包装成实体的,既他的类型是Object类型,不是实体类的类型,所以异常。有两种解原创 2017-08-22 09:41:06 · 847 阅读 · 0 评论 -
String,StringBuffer,StringBuilder之间的区别
整理一下知识,扩充自己他们之间的运行速度:StringBuilder > StringBuffer > StringString <(StringBuffer,StringBuilder)的原因 String:字符串常量 StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是“字符串常量”,...原创 2017-08-16 10:10:00 · 146 阅读 · 0 评论 -
延迟加载的个人理解
延迟加载:当要使用这个对象的时候才创建,如果不使用,则不创建。原创 2017-07-31 10:26:44 · 345 阅读 · 0 评论 -
序列化和反序列化
定义一个Student类 package com.jieke.io; import java.io.Serializable; /** *Title:学生类 *Description:实现序列化接口的学生类 *Filename: Student.java *@version 1.0 */原创 2017-07-27 09:19:41 · 240 阅读 · 0 评论 -
spring配置数据源问题
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'root'@'localhost'在一次单元测试中出现这个异常,原因是配置文件中的属性名字相同导致的,改一下就好。jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc\:mysql\:原创 2017-07-07 18:55:48 · 210 阅读 · 0 评论 -
关于spring的注入方式
spring的三种注入方式1. 接口注入(不推荐)2. getter,setter方式注入(比较常用)3. 构造器注入(死的应用)关于getter和setter方式的注入· autowire="defualt"· autowire=“byName”· autow转载 2017-07-07 17:25:10 · 195 阅读 · 0 评论 -
java中把查询出来的结果进行分页
java中把查询出来的结果进行分页,不是在查询中分页。遇到这个问题,可以试试 /** * 对list集合进行分页处理 * * @return */ private int row=10 //行数 private int page=1 //页数 private int total; //总记录数原创 2017-08-28 09:25:47 · 10889 阅读 · 0 评论 -
Spring注解@Resource和@Autowired区别对比
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。1、共同点两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。2、不同点(1)@Autowired@Autowire转载 2018-01-23 10:37:17 · 172 阅读 · 0 评论 -
java设计模式
一直以来都有看设计模式,却一直没有归纳,对设计模式也只是一知半解,对个人技术的提升几乎没有,书到用时方恨少,所以,从现在开始对设计模式进行归纳,参考一些大佬的博客,网上的资料,对知识进行优化,提高自身。设计模式分为三大类:创建型,结构型,行为型。当然,还有另一类设计模式:J2EE 设计模式。创建型:主要提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。...原创 2018-12-20 11:37:58 · 258 阅读 · 0 评论 -
建造者模式
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。何时使用:一些基本部件不会变,而其组合经常变化的时候。如何解决:将变与不变分离开。...原创 2018-12-28 15:53:38 · 866 阅读 · 1 评论 -
抽象工厂模式
工厂方法模式(Factory Method Pattern):创建一个工厂接口和创建多个工厂实现类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。抽象工厂模式(Abstract Factory Pattern):是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。主要解决:主要解决接...原创 2018-12-20 11:39:05 · 514 阅读 · 0 评论 -
timer定时器在项目启动时执行了两次的原因及其解决办法
Spring time定时器在项目启动时执行了两次今天在项目的时候用到了Spring的定时计划任务。这是Spring的特色功能,可以根据设置在特定的时间或间隔时间做特定的事。下面给出一个例子: @Override public void afterPropertiesSet() throws Exception { Timer timer = new Timer();...原创 2018-07-11 10:46:25 · 7165 阅读 · 0 评论 -
String截取指定字符
public static String subString1(String str, String strStart, String strEnd) { /* 找出指定的2个字符在 该字符串里面的 位置 */ int strStartIndex = str.indexOf(strStart); int strEndIndex = ...原创 2018-06-01 10:44:45 · 29657 阅读 · 1 评论 -
ssm框架实现微信公众号菜单栏自定义
通过微信公众平台开发文档可以知道:自定义菜单创建接口为:http请求方式:POST(请使用https协议)https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKENclick和view的请求示例{ "button":[ { "type":"click", ...原创 2018-03-13 17:44:25 · 2385 阅读 · 4 评论 -
关于java自动拆箱,装箱的陷阱
/** * 自动拆箱装箱案例 * @author Administrator * */public class ChaiXiang { public static void main(String[] args) { Integer a = 1; Integer b = 2; Integer c = 3; Integer d = 3; Integer e = 321...原创 2018-03-09 11:24:36 · 257 阅读 · 0 评论 -
访问者模式
在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。例如:顾客在商场购物时放在“购物车”中的商品,顾客主要关心所选商品的性价比,而收银员关心的是商品的价格和数量。意图:主要将数据结构与数据操作分离。主要解决:稳定的数据结构和易变的操作耦合问题。何时使用:需要对一个对象结构中的对象进行很...原创 2019-04-17 14:15:39 · 343 阅读 · 0 评论