摘要:数据访问对象模式(Data Access Object Pattern)或DAO模式用于把低级的数据访问的API或操作从高级的业务服务中分离出来。以下是数据访问对象模式的参与者。 数据访问对象接口(Data Access Object Interfact)-该接口定义了在一个模型对象上要执行的标准操
阅读全文
摘要:组合实体模式(Composite Entity Patter)用在EJB持久化机制中。一个组合实体是一个EJB实体bean,代表了对象的图解。当更新了一个组合实体时,内部依赖对象beans会自动更新,因为他们是由EJB实体bean管理的。以下是组合实体bean的参与者。 组合实体(Composite
阅读全文
摘要:业务代表模式(Business Delegate Pattern)用于对表示层和业务层解耦。它基本上是用来减少通信或对表示层代码中的业务层代码的远程查询功能。在业务层中有以下实体: 客户端(Client)-表示层代码可以使JSP、servlet和UI java代码 业务代表(Business Del
阅读全文
摘要:MVC模式代表(Model-View-Controller,模式-视图-控制器)模式。 这种模式用于应用程序的分层开发。 Model(模型)-模型代表一个存取数据的对象或JAVA POJO。它可以带有逻辑,在数据变化时更新控制器。 View(视图)-视图代表模型包含的数据的可视化 Controlle
阅读全文
摘要:设计模式是一套被人们反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 设计模式是的代码编制真正工程化。 GOF(四人帮,Gang of Four)提出的设计模式主要基于面向对象的设计原则: 对接口编程而不是对实现编程。
阅读全文
摘要:测试是保证软件质量的关键。 与 Spring MVC 相关的测试,主要涉及控制器的测试。 为了测试Web项目通常不需要启动项目,需要一些Servlet相关的一些模拟对象,比如MockMVC、MockHttpServletRequest、MockHttpServletResponse、MockHttp
阅读全文
摘要:1、文件上传配置 文件上传是项目中常用的一个功能,Spring MVC通过配置一个MultipartResolver来上传文件。 在Spring的控制器中,通过MultipartFile file 来接受文件,通过MultipartFile[] files接收多个文件上传。 2、自定义HttpMes
阅读全文
摘要:1、快捷的ViewController 2、路径匹配参数配置 在Spring MVC中,路径参数如果带有“.”的话,“.”后面的值将被忽略,例如访问http://localhost.8080/highlight_springmvc4/anno/pathvar/xx.yy,此时“.”后面的yy被忽略
阅读全文
摘要:通过@ControllerAdvice,可以将对于控制器的全局配置放置在同一个位置,注解了@Controller的类的方法可使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上,这对所有注解了@RequestMapping的控制器内的方法有效。
阅读全文
摘要:拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似于Servlet的Filter。 可让普通Bean实现HanlderInterceptor接口或者继承HandlerInterceptorAdapter类实现自定义拦截器。 通过重写WebMvcConfigurerAda
阅读全文
摘要:程序的静态文件(js、css、图片)等需要直接访问,这时可以在配置里重写addResourceHandlers方法实现
阅读全文
摘要:@Controller:注解在类上,表明这个类是Spring MVC里的Controller,将其声明为Spring的一个Bean,Dispatcher Servlet会自动扫描注解了此注解的类(这里的@Controller和用于注解作为拦截方式的原理类似),并将Web请求映射到注解了@Reques
阅读全文
摘要:Spring MVC提供了一个DispatcherServlet来开发Web应用。在Servlet2.5及2以下的时候只要在web.xml下配置<servlet>元素即可。 在Servlet3.0+则无web.xml的配置方式,在Spring MVC里实现WebApplicationInitiali
阅读全文
摘要:Spring MVC提供了一个DispatcherServlet
阅读全文
摘要:MVC:Mode+View+Controller(数据模型+视图+控制器) 三层架构:Presentation tier + Application tier + Data tier(展现层+应用层+数据访问层) 那MVC和三层架构的关系 MVC只存在于三层架构的展现层: M实际是数据模型,是包含数
阅读全文
摘要:测试时开发工作中不可缺少的部分。单元测试只针对当前开发的类和方法进行测试,可以简单通过模拟依赖来实现,对运行环境没有依赖;但是仅仅进行单元测试是不够的,它只能验证当前类或方法能否正常工作。 集成测试可以帮助coder了解系统地各个部分组合在一起是否能正常工作。 集成测试一般需要来自不同层的不同对象的
阅读全文
摘要:@EnableAspectJAutoProxy @EnableAsync @EnableScheduling @EnableWebMv @EnableConfigurationProperties @EnableJpaRepositories @EnableTransactionManagement
阅读全文
摘要:从Spring2开始,为了响应JDK1.5推出的注解功能,Spring开始大量加入注解来替代xml配置。Spring的注解主要用来配置注入Bean,切面相关配置(@Transactional)。随着注解的大量使用,尤其相同的多个注解用到个各类中,会很繁琐。这就是所谓的末班代码,是Spring设计原则
阅读全文
摘要:通过活动的profile,可以获得不同的Bean。Spring4提供了一个更通用的基于条件的Bean的创建,即使用@Conditonal注解 @Conditional根据满足某一个特定条件创建一个特定的Bean。 比如:当某一个jar包在一个类路径下的时候,自动配置一个或多个Bean;或者只有某个B
阅读全文
摘要:从Spring3.1开始,计划任务在Spring中的实现变得异常简单。 首先通过在配置类注解@EnableScheduling来开启对计划任务的支持 然后在要执行计划任务的方法上注解@Scheduled声明这是一计划任务
阅读全文
摘要:Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程。使用ThreadPoolTaskExecutor可实现一个 基于线程池的TaskExecutor。而实际开发中任务一般是非阻碍的,即异步的,所以要在配置类中通过@EnableAsync开启对异步任务的支持,并通过在实际执行
阅读全文
摘要:Spring的依赖注入的最大亮点就是所有的Bean对Spring容器的存在是没有意识的。即可以将容器替换成别的容器,如GoogleGuice,这时Bean之间的耦合度很低。 但是在实际项目中,不可避免地要用到Spring容器本身的功能资源,这时的Bean必须要意识到Spring容器的存在,才能调用S
阅读全文
摘要:Spring的事件(Appllcation Event)为Bean与Bean之间的消息通信提供了支持。当一个Bean处理完一个任务后,希望另一个Bean知道并能做相应的处理,这种情况可以让另一个Bean监听当前Bean所发送的事件 Spring的事件需要遵循如下流程: 1、自定义事件,继承Appli
阅读全文
摘要:AOP:面向切面编程,相对于OOP面向对象的编程 Spring的AOP的存在的目的是为了解耦。AOP可以让一组类共享相同的行为。在OOP中只能通过继承类和实现接口,来使代码的耦合度增强,且类继承只能为单继承,阻碍更多行为添加到一组类上,AOP弥补了OOP的不足。 Sping支持AspectJ的注解式
阅读全文
摘要:Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置; Java配置同时也是SpringBoot的推荐配置方式 Java配置是通过@Configuration和@Bean来实现的 1、@Configuration声明当前类是一个配置类,相当于一个Spring配置的xml文件。 2、
阅读全文
摘要:所谓元数据即描述数据的数据。元数据本身不具备任何可执行的能力,只能通过外界代码对这些元数据行解析后进行一些有意义的操作。
阅读全文
摘要:控制翻转(Inversion of Control-IOC)和依赖注入(dependency injection-DI)在Spring环境下是同等概念,控制翻转是通过 依赖注入实现的。所谓依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖。 依赖注
阅读全文
摘要:POJO(Plain Old Java Object)无任何限制的普通JAVA对象
阅读全文
摘要:Spring框架的四大原则: 1、使用POJO进行轻量级和最小侵入式开发; 2、通过依赖注入和基于接口编程实现松耦合; 3、通过AOP和默认习惯进行声明式编程; 4、使用AOP和模板(template)减少模式化代码 Spring所有功能的设计和实现都是基于此四大原则的。
阅读全文
摘要:Spring Boot:使用默认开发配置来实现快速开发 Spring XD:用来简化大数据应用开发 Spring Cloud:为分布式系统开发提供工具集 Spring Data:对主流的关系型和nosql数据库的支持 Spring Integration:通过消息机制对企业集成模式(EIP)的支持
阅读全文
摘要:NLP是神经语言程序学(Neuro-Linguistic Programming)的英文缩写。 在香港有意译为【身心语法程式学】。 N(Neuro)指的是神经系统,包括大脑和思维过程。 L(Linguistic)指的是语言,更准确地说是指从感觉信号的输入到构成意思的过程。 P(Programming
阅读全文
摘要:数组: 具有同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。 栈: 是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。 队列: 一种特殊的线性表,它只允许在表的前段(fro
阅读全文
摘要:【利用搜索引擎技术实现广度的爬虫遍历】 宽度优先搜索算法(广度优先搜索)是最简便的图的搜索算法之一 Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度有限搜索类似的思想。 其别名又叫BFS(Breath First Search),属于一种盲目搜索法,目的是系统地展开并检索图中的
阅读全文
摘要:HTTP Status Code是用以表示网页服务器HTTP响应状态的3位数字码 由RFC 2616规范定义并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。 消息: 这一类的状态码,代表请求已被接受,需要继续处理。这类相应是临时响应,只包含状
阅读全文
摘要:关于JAVA在JDK5发布的新功能,初感泛型与JAVA的继承特性有莫大的关系,后续进行研究
阅读全文
摘要:Cloneable接口是一个【标记接口】,就是没有任何内容 implements Cloneable表示该对象能被克隆,能使用Object.clone()方法。如果没有implements Cloneable的类调用Object.clone()方法就会抛出CloneNotSupportedExcep
阅读全文
摘要:Profile为在不同环境下使用不同的配置提供了支持(开发环境下的配置和生产环境下的配置肯定是不同的,例如数据库的配置) 1、通过设定Enviornment的ActiveProfiles来设定当前context需要使用的配置环境。在开发中使用@Profile注解类或者方法,达到在不同情况下选择实例化
阅读全文
摘要:在实际开发中,常会遇到在Bean在使用前后需要的必要操作,Spring对Bean的生命周期的操作提供了支持。 在使用JAVA配置和注解配置下提供如下两种方式: 1、JAVA配置方式:使用@Bean的initMethod和destoryMethod(相当于配置文件中的init-method和desto
阅读全文
摘要:Spring EL-Spring表达式语言,支持在xml和注解中使用表达式,类似于JSP的EL表达式语言。 Spring开发中经常涉及调用各种资源的情况,包含普通文件、网址、配置文件、系统环境变量等,我们可以使用Spring的表达式语言实现资源的注入。 Spring主要在注解@Value的参数中使用
阅读全文
摘要:Scope描述的是Spring容器如何新建实例的。 Spring 的Scope有以下几种,通过@Scope注解来实现 1、Singleton:一个Spring容器只有一个Bean的实例,这个是Spring的默认配置,全容器共享一个实例 2、Prototype:每次调用新建一个Bean的实例 3、Re
阅读全文