zoukankan      html  css  js  c++  java
  • spring老项目转springboot项目 笔记

    引入jar包

    先不删除老的jar包

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.4.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
      <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- log4j -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-log4j</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
    
                <!-- 这个是剔除掉自带的 tomcat部署的-->
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
    
            </dependency>
            <!-- tomcat容器部署 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <!--<scope>compile</scope>-->
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <optional>true</optional>
            </dependency>
            <!-- 支持 @ConfigurationProperties 注解 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-jasper</artifactId>
            </dependency>

    spring boot打包的插件

      <build>
            <finalName>MIS</finalName>
            <!-- maven 打包不全(xml,properties文件没打进包)解决方案-->
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>1.5.9.RELEASE</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

    创建springboot主类

    package com.guige;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.web.support.SpringBootServletInitializer;
    import org.springframework.context.annotation.ComponentScan;
    
    @SpringBootApplication
    @ComponentScan({"com.guige.oim.v2.*"})
    public class Application extends SpringBootServletInitializer {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }
    
        public static void main(String[] args) throws Exception {
            SpringApplication.run(Application.class, args);
        }
    }

    创建application.properties文件

    #默认前缀
    server.contextPath=/
    
    
    
    #数据源
    spring.datasource.name=adminDataSource
    spring.datasource.driverClassName = oracle.jdbc.OracleDriver
    spring.datasource.url = 
    spring.datasource.username = 
    spring.datasource.password = 

    1.先把web.xml去掉

    创建core包

    web.xml里的servlet转成bean形式

    filter也一样

    创建WebConfig配置类

    package com.guige.core.conf;
    
    import com.alibaba.druid.support.http.StatViewServlet;
    import com.alibaba.druid.support.http.WebStatFilter;
    import com.guige.core.ext.i18n.filter.LocaleFilter;
    import com.guige.mis.filter.JspFilter;
    import com.guige.mis.listener.ContextListener;
    import com.guige.mis.listener.OnlineUserListener;
    import com.guige.oim.filter.CORSFilter;
    import com.guige.oim.servlet.*;
    import org.springframework.boot.web.servlet.FilterRegistrationBean;
    import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.filter.CharacterEncodingFilter;
    import org.springframework.web.servlet.DispatcherServlet;
    
    /**
     * 对应web.xml
     *
     * @author songaw
     * @date 2018/7/17 9:10
     */
    @Configuration
    public class WebConfig {
        //----------------------Filter
        //跨域过滤器
        @Bean
        public FilterRegistrationBean corsRegistrationBean() {
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
            filterRegistrationBean.setFilter(new CORSFilter());
            filterRegistrationBean.addUrlPatterns("/*");
            return filterRegistrationBean;
        }
        //字符集utf-8
        @Bean
        public FilterRegistrationBean characterRegistrationBean() {
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
            CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
            characterEncodingFilter.setEncoding("UTF-8");
            characterEncodingFilter.setForceEncoding(true);
            filterRegistrationBean.setFilter(characterEncodingFilter);
            filterRegistrationBean.addUrlPatterns("/*");
            //filterRegistrationBean.addInitParameter("encoding", "UTF-8");
           // filterRegistrationBean.addInitParameter("ForceEncoding", "true");
            return filterRegistrationBean;
        }
        //对jsp进行权限日志过滤
        @Bean
        public FilterRegistrationBean jspFilterRegistrationBean() {
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
            JspFilter jspFilter = new JspFilter();
            filterRegistrationBean.setFilter(jspFilter);
            filterRegistrationBean.addUrlPatterns("*.do");
            return filterRegistrationBean;
        }
    
        /**
         * 如果session中没有设置locale串或者locale串不合法,默认采用request的locale,
         * @return
         */
        @Bean
        public FilterRegistrationBean localeRegistrationBean() {
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
            filterRegistrationBean.setFilter(new LocaleFilter());
            filterRegistrationBean.addUrlPatterns("*.do");
            return filterRegistrationBean;
        }
        //阿里druid界面设置
        @Bean
        public FilterRegistrationBean webStatFilterRegistrationBean() {
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
            filterRegistrationBean.setFilter(new WebStatFilter());
            filterRegistrationBean.addUrlPatterns("/*");
            filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
            return filterRegistrationBean;
        }
    
    
    
        //--------------------------------Listener
    
        @Bean
        public ServletListenerRegistrationBean<OnlineUserListener> onlineUserListenerRegistrationBean(){
            ServletListenerRegistrationBean<OnlineUserListener>
                    sessionListener = new ServletListenerRegistrationBean<OnlineUserListener>(new OnlineUserListener());
            return sessionListener;
    
        }
        @Bean
        public ServletListenerRegistrationBean<ContextListener> contextListenerRegistrationBean(){
            ServletListenerRegistrationBean<ContextListener>
                    sessionListener = new ServletListenerRegistrationBean<ContextListener>(new ContextListener());
            return sessionListener;
    
        }
    //    --------------------------------------Servlet
    
        @Bean
        public ServletRegistrationBean dispatcher() {
    
            ServletRegistrationBean reg = new ServletRegistrationBean();
            DispatcherServlet dispatcherServlet = new DispatcherServlet();
            dispatcherServlet.setContextConfigLocation("classpath:config/core/spring-mvc.xml," +
                    " classpath:config/core/dao/dao_authority.xml," +
                    " classpath:config/core/dao/dao_manager.xml," +
                    " classpath:config/core/dao/dao_oim.xml," +
                    " classpath:config/core/dao/dao_oim_v2.xml," +
                    " classpath:config/core/dao/dao_orgacus.xml," +
                    " classpath:config/core/service/service_authority.xml," +
                    " classpath:config/core/service/service_manager.xml," +
                    " classpath:config/core/service/service_oim.xml," +
                    " classpath:config/core/service/service_oim_v2.xml," +
                    " classpath:config/core/service/service_orgacus.xml," +
                    " classpath:config/client/i18n.xml," +
                    " classpath:config/client/http.xml," +
                    " classpath:config/client/action/action_main.xml," +
                    " classpath:config/client/action/action_authority.xml," +
                    " classpath:config/client/action/action_manager.xml," +
                    " classpath:config/client/action/action_oim.xml," +
                    " classpath:config/client/action/action_oim_v2.xml," +
                    " classpath:config/client/action/action_orgacus.xml");
            reg.setServlet(dispatcherServlet);
            reg.addUrlMappings("*.do");
            reg.setLoadOnStartup(30);
            return reg;
        }
    
      
        //阿里druid界面设置
        @Bean
        public ServletRegistrationBean statViewServlet() {
    
            ServletRegistrationBean reg = new ServletRegistrationBean();
            reg.setServlet(new StatViewServlet());
            reg.addUrlMappings("/druid/*");
            reg.addInitParameter("loginUsername", "111");
            reg.addInitParameter("loginPassword", "111");
            return reg;
        }
    
    }

    2.spring mvc文件

    里面的bean 转成声明试bean

    package com.guige.core.conf;
    
    import com.alibaba.druid.support.http.WebStatFilter;
    import com.fasterxml.jackson.databind.DeserializationFeature;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.guige.oim.filter.CORSFilter;
    import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
    import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
    import org.springframework.boot.web.servlet.ErrorPage;
    import org.springframework.boot.web.servlet.FilterRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.HttpStatus;
    import org.springframework.http.MediaType;
    import org.springframework.http.converter.HttpMessageConverter;
    import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
    import org.springframework.web.filter.CharacterEncodingFilter;
    import org.springframework.web.servlet.ViewResolver;
    import org.springframework.web.servlet.config.annotation.*;
    import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
    import org.springframework.web.servlet.resource.ContentVersionStrategy;
    import org.springframework.web.servlet.resource.VersionResourceResolver;
    import org.springframework.web.servlet.view.InternalResourceViewResolver;
    import org.springframework.web.servlet.view.JstlView;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.concurrent.TimeUnit;
    
    @Configuration
    public class WebMvcConfig extends WebMvcConfigurerAdapter {
    
        /**
         * 添加拦截器
         * @param registry
         */
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(new LocaleChangeInterceptor());
        //    registry.addInterceptor(webInterceptor());
        }
    
        /**
         *
         * @param converters
         */
        @Override
        public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
            //用来忽略json对象传入,反序列化时候属性名称不正确导致序列化失败的bug
            MappingJackson2HttpMessageConverter jacksonMessageConverter = new MappingJackson2HttpMessageConverter();
            List<MediaType> supportedMediaTypes =new ArrayList<>();
    //        避免IE执行AJAX时,返回JSON出现下载文件
            supportedMediaTypes.add(MediaType.TEXT_HTML);
            jacksonMessageConverter.setSupportedMediaTypes(supportedMediaTypes);
            ObjectMapper mapper = jacksonMessageConverter.getObjectMapper();
            mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
            converters.add(jacksonMessageConverter);
        }
    
        @Override
        public void configureViewResolvers(ViewResolverRegistry registry) {
            registry.viewResolver(this.getViewResolver());
            //MappingJsonView jsonView = new MappingJsonView();
        //    registry.enableContentNegotiation(jsonView);
        }
    
        @Bean
        public ViewResolver getViewResolver() {
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setViewClass(JstlView.class);
            resolver.setPrefix("/WEB-INF/jsp/");
            resolver.setSuffix(".jsp");
            resolver.setOrder(1);
            return resolver;
        }
        @Override
        public void addViewControllers(ViewControllerRegistry registry){
            registry.addViewController("/").setViewName("forward:/login.html");
        }
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            VersionResourceResolver versionResourceResolver = new VersionResourceResolver();
            versionResourceResolver.addVersionStrategy(new ContentVersionStrategy(), "/**");
            registry.addResourceHandler("/resources/**")
                    .addResourceLocations("/resources/")
                    .resourceChain(true)
                    .addResolver(versionResourceResolver);
        }
    
        @Bean
        public EmbeddedServletContainerFactory servletContainer() {
            TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
            factory.setSessionTimeout(14400, TimeUnit.SECONDS);
            ErrorPage ep1 = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
            return factory;
        }
    
    }

    3. spring.xml转配置文件

  • 相关阅读:
    Java switch 枚举
    (八十七)AutoLayout的简单介绍与实例
    ptime概述
    如何让大数据从发现价值到创造价值
    什么是数据分析?数据分析的6个关键步骤!
    什么是数据分析?数据分析的6个关键步骤!
    数据分析方法汇总(2)
    数据分析方法汇总(2)
    数据分析方法汇总(1)
    人工智能能力提升指导总结
  • 原文地址:https://www.cnblogs.com/songanwei/p/9318524.html
Copyright © 2011-2022 走看看