openfire如何整合spring mvc

Openfire的web服务器使用的是jetty,jetty启动的类是AdminConsolePlugin,至于该类是何时调用的就不再赘述。

Openfire整合spring MVC的关键点在于你是在何时初始化DispatcherServlet。如果你要把spring mvc整合在openfire项目中那么直接配在openfire的web.xml就行了,但是如果你是想把它配置在一个插件中,那么下面的配置过程可能就会对你有那么一点帮助。所需要用的jar包在网上去下载。

1)创建openfire插件项目,网上有大把的例子。

2)配置web-custom.xml,注意contextConfigLocation的路径地址,根据你自己路径更改。

3)spring-actions.xml配置,需要扫描的包路径根据你自己的路径更改。

4)Action类,spring mvc的action注解类怎么写就不啰嗦了,这里需要注意的一点就是,@RequestMapping(value=”/eraplugins/”)这里一定要加上你的插件名路径,不然spring mvc找不到这个mapping。

5)到此插件这块就差不多配置好了,然后build出来先放一边,接下来修改openfire这边的一些东西。

6)找到PluginServlet类的registerServlets方法,添加参数PluginClassLoader pluginLoader,添加之后PluginManager类会报错,在报错的地方把pluginLoader丢进去。

7)回到PluginServlet类的registerServlets方法,找到Object instance=servletClass.nerInstance()这一步。

添加这么一段代码

此处的主要目的是,openfire注册插件时本身没有对<init-param>做解析,这里自己添加,当然只针对DispatcherServlet。

8)做完上面的步骤之后再向下走一行,找到if(instance instanceof GenericServlet) { 这一步。按照图中的代码添加一段代码。

到此openfire插件+spring mvc的配置也就完成了,至于如何整合hibernate和spring容器暂时只有个头绪,还没有去验证过。

Spring mvc的配置主要就是一个DispatcherServlet类,该类会扫描加载所有Controller,其他的service和entity等等则是由ContextLoaderListene操作的,所以如果想把hibernate或者spring容器等等配置进插件,大概就要在ContextLoaderListene上面做文章了。

再提点openfire上面的东西,openfire涉及到很多的动态加载,比如plugin,所以从个人感觉上面来说openfire中有很多不同的classLoader,加载启动openfire服务器的是Thread.currentThread().getContextClassLoader();这个ClassLoader在serverStarter中已经变成JiveClassLoader (openfier自定义的一个),

这个ClassLoader暂且我们就当做一条主线的ClassLoader,然后plugin的ClassLoader是pluginLoader = new PluginClassLoader();加载jetty的时候new 一个,加载你写的插件再new一个。而初始化DispatcherServlet的时候加载配置文件的ClassLoader获取的是Thread.currentThread().getContextClassLoader();所以这里就可以看出上面改pluginServlet起到的作用了。至于具体的过程就不再啰嗦了,可以去看看openfired的PluginManager和PluginServlet 这两个类,另外再去跟一跟DispatcherServlet的源代码。

时间: 2024-08-24 09:21:30

openfire如何整合spring mvc的相关文章

patchca整合Spring MVC生成超炫的验证码

官方的色调单一,随机色也不随机,黑不拉几的,很难看. 为此做了扩展实现,并整合了spring mvc,生成的验证码漂亮多了. 官网: http://code.google.com/p/patchca/ 官方效果: 下面是我整合到spring并修扩展后的效果: package com.lavasoft.ntv.web; import org.patchca.color.ColorFactory; import org.patchca.filter.predefined.*; import org.

Hibernate validator使用和自定义validator及整合Spring MVC

Hibernate validator使用 导入validation-api-xxx.jar 以及  hibernate-validator-xxx.Final.jar 需要检查的java bean Entity.java import javax.validation.constraints.Max; import org.hibernate.validator.constraints.Length; public class Entity { @Max(value=3)//最大值为3 pri

Spring Boot整合Spring MVC、Spring、Spring Data JPA(Hibernate)

一句话总结:Spring Boot不是新的功能框架,而是为了简化如SSH.SSM等等多个框架的搭建.整合及配置.使用Spring Boot 10分钟搭建起Spring MVC.Spring.Spring Data JPA(Hibernate)基础后台架构.基本零配置,全注解. 步骤一: 使用Spring Boot提供的网站生成maven项目及基础依赖.打开https://start.spring.io/网站,右侧输入想要的特性依赖.输入Web提供整合Spring MVC,输入JPA提供整合Spr

spring 整合 spring mvc

需要进行 Spring 整合 SpringMVC 吗 ? 还是否需要再加入 Spring 的 IOC 容器 ? 是否需要再 web.xml 文件中配置启动 Spring IOC 容器的 ContextLoaderListener ? 1. 需要: 通常情况下, 类似于数据源, 事务, 整合其他框架都是放在 Spring 的配置文件中(而不是放在 SpringMVC 的配置文件中). 实际上放入 Spring 配置文件对应的 IOC 容器中的还有 Service 和 Dao. 2. 不需要: 都放

MyBatis整合Spring MVC(易百教程)

MyBatis是ibatis的升级版,作为hibernate的老对手,它是一个可以自定义SQL.存储过程和高级映射的持久层框架.与Hibernate 的主要区别就是 Mybatis 是半自动化的,而 Hibernate 是全自动的,所以当应用需求越来越复杂的时候,自动化的 SQL 显得比较笨拙.经常搭框架的人应该都清楚,框架搭建的核心就是配置文件. 在这里我们需要创建 web 工程.今天将直接用 mybatis与Spring mvc 的方式集成起来,源码在本文结尾处下载.主要有以下几个方面的配置

Apache cxf 整合 Spring MVC

1.添加依赖pom.xml <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.o

Spring MVC+Mybatis+Maven+Velocity+Mysql整合实例

本篇文章将通过一个简单显示用户信息的实例整合Spring mvc+mybatis+Maven+velocity+mysql. 对于实现整合的重点在于以下几个配置文件的实现 1.Maven依赖包 2.spring配置文件(springContext-user.xml) 3.mybatis配置文件(MyBatis-User-Configuration.xml) 4.spring-mvc配置文件(spring-mvc.xml) 5.web.xml配置文件 源码下载地址:http://download.

Freemark与Spring MVC的整合

1.项目的视图存放位置 2.整合Spring MVC 的配置,web.xml的配置如下 <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&

Velocity + log4j + Spring MVC + Spirng + MyBatis + Maven整合

1. 整合Spring和MyBatis 注意:(1) 如果Mapper接口的名称是HelloWorldMapper,则对应的mapper映射文件也应该名称为HelloWorldMapper.xml或者是helloWorldMapper.xml. (2) 对于Maven项目而言,我们通常会把配置文件放到resources目录下面的,对于HelloWorldMapper.xml文件我也喜欢放到该目录下面.但是如果直接放到该目录下面是找不到该mapper映射文件的.如果直接放到src/main/jav