bean

Spring框架之Filter应用

余生长醉 提交于 2020-03-27 07:44:01
在web.xml中进行配置。对全部的URL请求进行过滤。就像"击鼓传花"一样,链式处理。 配置分为两种A和B。 A:普通配置 在web.xml中添加例如以下内容: <filter> <filter-name>permissionFilter</filter-name> <filter-class>com.taobao.riskm.filter.PermissionFilter</filter-class> </filter> <filter-mapping> <filter-name>permissionFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 由filter和filter-mapping构成。filter指定过滤器处理类(实现了Filter接口)。filter-mapping指定过滤的规则。 B:高级配置 (同意代理注入Spring bean) 在web.xml中添加例如以下内容: <filter> <filter-name>permission</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name

Spring框架之Filter应用

元气小坏坏 提交于 2020-03-27 07:43:45
转载自: http://blog.csdn.net/whuslei/article/details/8134848 urlpattern规则在最后! 在web.xml中进行配置,对所有的URL请求进行过滤,就像"击鼓传花"一样,链式处理。 配置分为两种A和B。 A:普通配置 在web.xml中增加如下内容: <filter> <filter-name>permissionFilter</filter-name> <filter-class>com.taobao.riskm.filter.PermissionFilter</filter-class> </filter> <filter-mapping> <filter-name>permissionFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 由filter和filter-mapping构成。filter指定过滤器处理类(实现了Filter接口),filter-mapping指定过滤的规则。 B:高级配置 (允许代理注入Spring bean) 在web.xml中增加如下内容: <filter> <filter-name>permission</filter-name> <filter-class>org.springframework

Java面试题1

ε祈祈猫儿з 提交于 2020-03-27 07:32:16
1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间

常见的JAVA面试题

≡放荡痞女 提交于 2020-03-27 07:31:15
1.开发中都用到了那些设计模式?用在什么场合? 每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。 2. 说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法 Session Facade Pattern:使用SessionBean访问EntityBean   Message Facade Pattern:实现异步调用   EJB Command Pattern:使用Command JavaBeans取代SessionBean,实现轻量级访问   Data Transfer Object Factory:通过DTO Factory简化EntityBean数据提供特性   Generic Attribute Access:通过AttibuteAccess接口简化EntityBean数据提供特性   Business Interface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性   EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂,项目队伍越庞大则越能体现良好设计的重要性。 3.

JSR教程1——JSR 303 - Bean Validation介绍

折月煮酒 提交于 2020-03-27 06:02:54
1.Bean Validation 在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,比如说语义的一致性等。为了避免这样的情况发生,最好是将验证逻辑与相应的域模型进行绑定。 Bean Validation 为 JavaBean 验证定义了相应的元数据模型和 API。缺省的元数据是 Java Annotations,通过使用 XML 可以对原有的元数据信息进行覆盖和扩展。在应用程序中,通过使用 Bean Validation 或是你自己定义的 constraint,例如 @NotNull, @Max, @ZipCode, 就可以确保数据模型(JavaBean)的正确性。constraint 可以附加到字段,getter 方法,类或者接口上面。对于一些特定的需求,用户可以很容易的开发定制化的 constraint。Bean Validation 是一个运行时的数据验证框架,在验证之后验证的错误信息会被马上返回。 Bean Validation 中内置的 constraint @NotNull/@Null 验证字段:引用数据类型 注解说明

springmvc和activemq的整合使用

风流意气都作罢 提交于 2020-03-27 04:53:02
1、简介:ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。 2、建议在使用以前了解一下jms的一些知识 3、第一步:我们部署相关的activemq(我这里是采用自己本地linux虚拟机来实现的,以模拟中间推送消息的原理)   activemq下载地址: http://archive.apache.org/dist/activemq/ 我用的是目前最新的5.14.5版本 这里有这个zip的是windows用的,tar.gz的是Linux用的。我这里采用的Linux部署 将activemq的tar解压启动 启动方式在: /root/apache-activemq-5.14.5/bin/linux-x86-64 启动:./activemq start 暂停: ./activemq stop 重启:./activemq restart 启动起来后,访问地址为:http://192.168.5.10:8161/admin 账号密码:都是admin(默认) 开机自启:vi /etc/rc.local 然后在末尾加入 su - root -c '/usr/local

SpringMVC 使用验证框架 Bean Validation(上)

大城市里の小女人 提交于 2020-03-27 04:32:44
SpringMVC 使用验证框架 Bean Validation(上) 对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证。 SpringMVC 自身对数据在服务端的校验(Hibernate Validator)有一个比较好的支持,它能将我们提交到服务端的数据按照我们事先的约定进行数据有效性验证,对于不合格的数据信息 SpringMVC 会把它保存在错误对象中(Errors接口的子类),这些错误信息我们也可以通过 SpringMVC 提供的标签(form:errors)在前端JSP页面上进行展示。或者使用拦截器 after 方法对处理错误信息进行处理后传递给页面(我们使用JSON请求的时候就需要这样做)。 本文来介绍,如何在 SpringMVC 中进行 Validator 的使用。 一、添加 POM 依赖 <!-- Hibernate Validator --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> </dependency> 二、配置要验证的实体 public class ValidatorTest { // message 直接提供错误信息 @NotNull

Spring02——Spring 中 Bean 的生命周期及其作用域

早过忘川 提交于 2020-03-27 00:00:11
在前一篇文章中,我们已经介绍了 Spring IOC 的相关知识,今天将为个位介绍 Spring 中 Bean 的相关知识。关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java 相关知识点。 Bean 的生命周期 Spring 生命周期有四个阶段,分别是: 实例化 Instantiation 属性赋值 Populate 初始化 Initialization 销毁 Destruction 实例化 通过构造器或工厂方法创建 Bean 实例,也就是我们常说的给自己 new 一个对象。 属性赋值 为 Bean 的属性设置值和对其他 Bean 的引用,主要涉及以下几个方面的内容: IOC 依赖注入 :按照 Spring 上下文对实例化的 Bean 进行配置,也就是 IOC 注入; setBeanName 实现 :如果这个 Bean 已经实现了 BeanNameAware 接口,会调用它实现的 setBeanName(String)方法,此处传递的就是 Spring 配置文件中 Bean 的 id 值; BeanFactoryAware 实现 :如果这个 Bean 已经实现了 BeanFactoryAware 接口,会调用它实现的 setBeanFactory,setBeanFactory(BeanFactory)传递的是 Spring 工厂自身

Spring IOC-DI

大城市里の小女人 提交于 2020-03-26 23:38:35
3 月,跳不动了?>>> 1、循环依赖注入问题 Singleton类型的作用域,可以在早期对象缓存集合中或者查询是否存在正在创建中的bean来解决循环依赖注入问题。 private final Map<String,Object> earlySingletonObjects = new HashMap<String,Object>(16); 2、IOC容器的工作模式,通过工厂模式根据beanName通过反射动态生成对象。 1)IOC容器主要完成对象的创建和依赖的管理注入等。 2)依赖注入是控制反转的基础。 3)利用反射原理将对象创建的权利交给了Spring容器,Spring在运行的时候根据配置文件来动态创建对象和维护对象之间的关系,实现了松耦合。 3、依赖注入的实现方式 :构造器、Setter方法注入、接口注入(常用,@Autowired,@Resource) 由Spring容器将对象注入到使用它的地方,被注入的对象只提供对应的方法接收就行,由容器来决定对象之间的依赖关系。 4、@Autowired原理 1)每个Bean实例化之后,调用AutowiredAnnotationBeanPostProcessor的下图方法,找到有@Autowired注解的信息。 检查beanName在injectionMetadataCache的Map中是否有对应的元数据

Spring bean的生命流程

给你一囗甜甜゛ 提交于 2020-03-26 20:26:58
Spring 是一个轻量级的 J2EE 开源框架,其目标是降低企业级应用开发难度,提高企业级应用开发效率。在日程开发中,我们会经常使用 Spring 框架去构建应用。所以作为一个经常使用的框架,了解其原理还是很有必要的。接下来我们就从宏观层面上,来看看 Spring 中的 bean 由实例化到销毁的过程。在详细讨论 bean 生命周期前,先上一张图,后面也会围绕这张图展开讨论。 图1 bean实例化过程 接下来对照上图,一步一步对 singleton 类型 bean 的生命周期进行解析: 实例化 bean 对象,类似于 new XXObject() 将配置文件中配置的属性填充到刚刚创建的 bean 对象中。 检查 bean 对象是否实现了 Aware 一类的接口,如果实现了则把相应的依赖设置到 bean 对象中。比如如果 bean 实现了 BeanFactoryAware 接口,Spring 容器在实例化bean的过程中,会将 BeanFactory 容器注入到 bean 中。 调用 BeanPostProcessor 前置处理方法,即 postProcessBeforeInitialization(Object bean, String beanName)。 检查 bean 对象是否实现了 InitializingBean 接口,如果实现,则调用