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

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>

改造后

@Bean
public FilterRegistrationBean registrationFilterBean() {
     FilterRegistrationBean registration = new FilterRegistrationBean();
     registration.setFilter(characterEncodingFilter());
     registration.addUrlPatterns("/*");
     return registration;
 }

@Bean
public 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实例化的,后期慢慢研究如何进行整合。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值