springmvc +dubbo项目切换成spring boot启动

来源:互联网 发布:js伪类选择器 编辑:程序博客网 时间:2024/05/22 09:27

springmvc +dubbo项目切换成spring boot启动

最近对老项目架构上进行一次改动,将原来springmvc + dubbo 切换成spring boot jar启动方式

**1.在pom.xml添加springboot依赖 并删除之前spring所有依赖
这里使用的版本是1.5.2.RELEASE 对应spring版本4.3.7**

 <modelVersion>4.0.0</modelVersion>    <groupId>com.hd.web</groupId>    <artifactId>hd_web</artifactId>    <version>1.0.0</version>    <packaging>jar</packaging>    <name>hd_web</name><parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.2.RELEASE</version></parent><dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId></dependency><dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope></dependency><plugin>       <groupId>org.springframework.boot</groupId>       <artifactId>spring-boot-maven-plugin</artifactId>       <version>1.4.2.RELEASE</version>       <dependencies>          <!-- spring热部署 -->          <dependency>              <groupId>org.springframework</groupId>                  <artifactId>springloaded</artifactId>                  <version>1.2.6.RELEASE</version>           </dependency>       </dependencies></plugin>

如果有redis依赖

<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-redis</artifactId>            <version>1.4.7.RELEASE</version>        </dependency>

如果有jpa依赖

 <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-jpa</artifactId>            <version>${spring.boot.version}</version></dependency>

2.将web.xml 里的servlet filter进行改造
listener 改造前

<listener>  <listenerclass>com.hdb.modules.hdbOnline.servlet.LoginSessionListener</listener-class></listener>

改造后
找到该类添加@WebListener 注解即可

filter 改造前

<filter>    <filter-name>encodingFilter</filter-name>    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>    <init-param>      <param-name>encoding</param-name>      <param-value>UTF-8</param-value>    </init-param>    <init-param>      <param-name>forceEncoding</param-name>      <param-value>true</param-value>    </init-param>  </filter>  <filter-mapping>    <filter-name>encodingFilter</filter-name>    <url-pattern>/*</url-pattern></filter-mapping>

改造后

@Beanpublic FilterRegistrationBean registrationFilterBean() {     FilterRegistrationBean registration = new FilterRegistrationBean();     registration.setFilter(characterEncodingFilter());     registration.addUrlPatterns("/*");     return registration; }@Beanpublic CharacterEncodingFilter characterEncodingFilter() {    CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();    characterEncodingFilter.setEncoding("UTF-8");    characterEncodingFilter.setForceEncoding(true);    return characterEncodingFilter;}

servlet 改造前

<servlet>   <servlet-name>ValidateCodeServlet</servlet-name>   <servlet-class>com.hdb.common.servlet.ValidateCodeServlet</servlet-class> </servlet> <servlet-mapping>   <servlet-name>ValidateCodeServlet</servlet-name>   <url-pattern>/servlet/validateCodeServlet</url-pattern> </servlet-mapping>

改造后 找到该类

@WebServlet(name="ValidateCodeServlet",urlPatterns="/servlet/validateCodeServlet")

错误 页面配置 改造前

<error-page>   <exception-type>java.lang.Throwable</exception-type>   <location>/WEB-INF/views/error/500.jsp</location> </error-page> <error-page>   <error-code>500</error-code>   <location>/WEB-INF/views/error/500.jsp</location> </error-page>

改造后

/**  * 错误 页面配置  * @return  */ @Bean public EmbeddedServletContainerCustomizer containerCustomizer() {     return new EmbeddedServletContainerCustomizer() {         @Override         public void customize(ConfigurableEmbeddedServletContainer container) {             ErrorPage errorPage = new ErrorPage(Throwable.class, "/WEB-INF/views/error/500.jsp");             ErrorPage error400Page = new ErrorPage(HttpStatus.BAD_REQUEST, "/WEB-INF/views/error/404.jsp");             ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/WEB-INF/views/error/404.jsp");             ErrorPage error405Page = new ErrorPage(HttpStatus.METHOD_NOT_ALLOWED, "/WEB-INF/views/error/404.jsp");             ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/WEB-INF/views/error/500.jsp");             container.addErrorPages(errorPage, error400Page, error404Page, error405Page, error500Page);         }     }; }

3.spring-mvc.xml 文件中的拦截器 视图解析器的改造
添加一个Configuration类 扩展WebMvcConfigurerAdapter类,然后重写addInterceptors方法添加拦截器

重写addResourceHandlers 方法添加对于静态资源的处理
重写configureViewResolvers方法添加视图解析器

4.jar包启动是不支持jsp的,因此,加入几项支持
spring-boot-maven-plugin 版本1.4.2.RELEASE 高版本好像不太支持

将webapp的文件打包后放到META-INF下,否则访问不到

<resource>    <directory>src/main/webapp</directory>    <targetPath>META-INF/resources</targetPath>    <includes>        <include>**/**</include>    </includes></resource>

添加两个依赖,但是scope 去掉

<dependency>     <groupId>org.apache.tomcat.embed</groupId>     <artifactId>tomcat-embed-jasper</artifactId> </dependency> <dependency>     <groupId>javax.servlet</groupId>     <artifactId>jstl</artifactId> </dependency>

目前只是改了启动方式,其中包括对于mq、hibernate lucene、dubbo都是通过引入xml实例化的,后期慢慢研究如何进行整合。

原创粉丝点击