国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

springmvc項目轉為springboot

wqj97 / 992人閱讀

摘要:說明如果你的項目連項目都不是,請自行轉為項目,在按照本教程進行。本教程適用于的項目。處理攔截資源文件問題。

說明

如果你的項目連maven項目都不是,請自行轉為maven項目,在按照本教程進行。
本教程適用于spring+springmvc+mybatis+shiro的maven項目。
1.修改pom文件依賴

刪除之前的spring依賴,添加springboot依賴


        org.springframework.boot
        spring-boot-starter-parent
        1.5.9.RELEASE


       
            org.springframework.boot
            spring-boot-starter
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.boot
            spring-boot-starter-web

            
            
                
                    org.springframework.boot
                    spring-boot-starter-tomcat
                
            

        
        
        
            org.springframework.boot
            spring-boot-starter-tomcat
            
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.0
        
        
            org.springframework.boot
            spring-boot-devtools
            true
        
        
        
            org.springframework.boot
            spring-boot-configuration-processor
            true
        
        
            org.apache.tomcat.embed
            tomcat-embed-jasper
        

添加springboot構建插件


    
        org.apache.maven.plugins
        maven-compiler-plugin
        
            1.7
            1.7
        
    
    
        org.springframework.boot
        spring-boot-maven-plugin
        1.5.9.RELEASE
        
            
                
                    repackage
                
            
        
    

添加application啟動文件 注意,如果Application在controller,service,dao的上一層包里,無需配置 @ComponentScan,
否則,需要指明要掃描的包。

@SpringBootApplication
//@ComponentScan({"com.cms.controller","com.cms.service","com.cms.dao"})
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);
    }
}

添加springboot配置文件
在resources下面添加application.properties文件
添加基本配置

#默認前綴
server.contextPath=/
# 指定環境
spring.profiles.active=local
# jsp配置
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
#log配置文件
logging.config=classpath:logback-cms.xml
#log路徑
logging.path=/Users/mac/work-tommy/cms-springboot/logs/
#數據源
spring.datasource.name=adminDataSource
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/mycms?useUnicode=true&autoReconnect=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 123456

使用@Configuration注入配置
注入mybatis配置,分頁插件請自主選擇

@Configuration
@MapperScan(basePackages = "com.kuwo.dao",sqlSessionTemplateRef  = "adminSqlSessionTemplate")
public class AdminDataSourceConfig {

    @Bean(name = "adminDataSource")
    @ConfigurationProperties(prefix = "spring.datasource")
    @Primary
    public DataSource adminDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "adminSqlSessionFactory")
    @Primary
    public SqlSessionFactory adminSqlSessionFactory(@Qualifier("adminDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        //分頁插件
//        PageHelper pageHelper = new PageHelper();
        PagePlugin pagePlugin = new PagePlugin();
//        Properties props = new Properties();
//        props.setProperty("reasonable", "true");
//        props.setProperty("supportMethodsArguments", "true");
//        props.setProperty("returnPageInfo", "check");
//        props.setProperty("params", "count=countSql");
//        pageHelper.setProperties(props);
        //添加插件
        bean.setPlugins(new Interceptor[]{pagePlugin});
        // 添加mybatis配置文件
        bean.setConfigLocation(new DefaultResourceLoader().getResource("classpath:mybatis/mybatis-config.xml"));
        // 添加mybatis映射文件
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/system/*.xml"));
        return bean.getObject();
    }

    @Bean(name = "adminTransactionManager")
    @Primary
    public DataSourceTransactionManager adminTransactionManager(@Qualifier("adminDataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean(name = "adminSqlSessionTemplate")
    @Primary
    public SqlSessionTemplate adminSqlSessionTemplate(@Qualifier("adminSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

添加Interceptor配置,注意addInterceptor的順序,不要搞亂了

@Configuration
public class InterceptorConfiguration extends WebMvcConfigurerAdapter{
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginHandlerInterceptor());
    }
}

添加shiro配置文件
注意:本來使用redis做session緩存,但是和shiro集成發現一個問題,user對象存儲以后,從shiro中獲取后,無法進行類型轉換,所以暫時放棄了redis做session緩存。

@Configuration
public class ShiroConfiguration {
    @Value("${spring.redis.host}")
    private String host;

    @Value("${spring.redis.port}")
    private int port;

    @Value("${spring.redis.timeout}")
    private int timeout;
    @Bean
    public static LifecycleBeanPostProcessor getLifecycleBeanPostProcessor() {
        return new LifecycleBeanPostProcessor();
    }

    /**
     * ShiroFilterFactoryBean 處理攔截資源文件問題。
     * 注意:多帶帶一個ShiroFilterFactoryBean配置是或報錯的,因為在
     * 初始化ShiroFilterFactoryBean的時候需要注入:SecurityManager
     *
     Filter Chain定義說明
     1、一個URL可以配置多個Filter,使用逗號分隔
     2、當設置多個過濾器時,全部驗證通過,才視為通過
     3、部分過濾器可指定參數,如perms,roles
     *
     */
    @Bean
    public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager){
        System.out.println("ShiroConfiguration.shirFilter()");
        ShiroFilterFactoryBean shiroFilterFactoryBean  = new ShiroFilterFactoryBean();

        // 必須設置 SecurityManager
        shiroFilterFactoryBean.setSecurityManager(securityManager);
        // 如果不設置默認會自動尋找Web工程根目錄下的"/login.jsp"頁面
        shiroFilterFactoryBean.setLoginUrl("/login_toLogin");
        // 登錄成功后要跳轉的鏈接
        shiroFilterFactoryBean.setSuccessUrl("/usersPage");
        //未授權界面;
        shiroFilterFactoryBean.setUnauthorizedUrl("/403");
        //攔截器.
        Map filterChainDefinitionMap = new LinkedHashMap<>();

        //配置退出 過濾器,其中的具體的退出代碼Shiro已經替我們實現了
        filterChainDefinitionMap.put("/logout", "logout");
        filterChainDefinitionMap.put("/login_toLogin", "anon");
        filterChainDefinitionMap.put("/login_login", "anon");
        filterChainDefinitionMap.put("/static/login/**","anon");
        filterChainDefinitionMap.put("/static/js/**","anon");
        filterChainDefinitionMap.put("/uploadFiles/uploadImgs/**","anon");
        filterChainDefinitionMap.put("/code.do","anon");
        filterChainDefinitionMap.put("/font-awesome/**","anon");
        //:這是一個坑呢,一不小心代碼就不好使了;
        //

        filterChainDefinitionMap.put("/**", "authc");


        shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
        return shiroFilterFactoryBean;
    }


    @Bean
    public SecurityManager securityManager(){
        DefaultWebSecurityManager securityManager =  new DefaultWebSecurityManager();
        //設置realm.
        securityManager.setRealm(myShiroRealm());
        // 自定義緩存實現 使用redis
        //securityManager.setCacheManager(cacheManager());
        // 自定義session管理 使用redis
        securityManager.setSessionManager(sessionManager());
        return securityManager;
    }

    @Bean
    public ShiroRealm myShiroRealm(){
        ShiroRealm myShiroRealm = new ShiroRealm();
//        myShiroRealm.setCredentialsMatcher(hashedCredentialsMatcher());
        return myShiroRealm;
    }

}
    /**
     *  開啟shiro aop注解支持.
     *  使用代理方式;所以需要開啟代碼支持;
     * @param securityManager
     * @return
     */
    @Bean
    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager){
        AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
        authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
        return authorizationAttributeSourceAdvisor;
    }

    /**
     * 配置shiro redisManager
     * 使用的是shiro-redis開源插件
     * @return
     */
    public RedisManager redisManager() {
        RedisManager redisManager = new RedisManager();
        redisManager.setHost(host);
        redisManager.setPort(port);
        redisManager.setExpire(1800);
        redisManager.setTimeout(timeout);
        // redisManager.setPassword(password);
        return redisManager;
    }

    /**
     * cacheManager 緩存 redis實現
     * 使用的是shiro-redis開源插件
     * @return
     */
    public RedisCacheManager cacheManager() {
        RedisCacheManager redisCacheManager = new RedisCacheManager();
        redisCacheManager.setRedisManager(redisManager());
        return redisCacheManager;
    }

    /**
     * RedisSessionDAO shiro sessionDao層的實現 通過redis
     * 使用的是shiro-redis開源插件
     */
    @Bean
    public RedisSessionDAO redisSessionDAO() {
        RedisSessionDAO redisSessionDAO = new RedisSessionDAO();
        redisSessionDAO.setRedisManager(redisManager());
        return redisSessionDAO;
    }

    @Bean
    public DefaultWebSessionManager sessionManager() {
        DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
//        sessionManager.setSessionDAO(redisSessionDAO());
        return sessionManager;
    }

}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75467.html

相關文章

  • SpringBootSpringMVC

    摘要:概述用久了,深受其約定大于配置的便利性毒害之后,我想回歸到時代,看看開發模式中用戶是如何參與的。備注當然本文所使用的全是非注解的配置方法,即需要在中進行配置并且需要遵循各種實現原則。而更加通用主流的基于注解的配置方法將在后續文章中詳述。 showImg(https://segmentfault.com/img/remote/1460000015244684); 概述 用久了Sprin...

    xavier 評論0 收藏0
  • Java后端

    摘要:,面向切面編程,中最主要的是用于事務方面的使用。目標達成后還會有去構建微服務,希望大家多多支持。原文地址手把手教程優雅的應用四手把手實現后端搭建第四期 SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Spring 兩大核心之 AOP 學習 | 掘金技術征文 原本地址:SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Sp...

    joyvw 評論0 收藏0
  • 慕課網_《2小時學會SpringBoot》學習總結

    摘要:小時學會學習總結時間年月日星期六說明本文部分內容均來自慕課網。慕課網教學示例源碼暫無。數據庫操作下第六章事務管理事務管理只有查詢的時候不加事務,其它任何操作都要加事務。第七章課程回顧課程回顧總結介紹安裝配置的使用數據庫操作 《2小時學會SpringBoot》學習總結 時間:2017年2月18日星期六說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示...

    aisuhua 評論0 收藏0
  • springboot學習(二)——springmvc配置使用

    摘要:中添加攔截器配置如下攔截所有請求,也就是,只攔截開頭的請求。在中并沒有提供配置文件的方式來配置攔截器,因此需要使用的代碼式配置,配置如下這個屬性通常并不需要手動配置,高版本的會自動檢測第四點講下靜態資源映射。 以下內容,如有問題,煩請指出,謝謝 上一篇講解了springboot的helloworld部分,這一篇開始講解如何使用springboot進行實際的應用開發,基本上尋著sprin...

    hiyayiji 評論0 收藏0
  • 第三十六章:基于SpringBoot架構重寫SpringMVC請求參數裝載

    摘要:本章目標根據項目定制參數狀態并了解的裝載過程以及實現方式。創建測試控制器創建名為的控制器并添加數據提交的方法,具體代碼如下所示表單提交控制器恒宇少年碼云裝載參數測試教師名稱, 在國內企業開發項目中大多數都已經偏向Spring家族式的開發風格,在前幾年國內項目都是以Structs2作為Web開發的主導,不過由于近幾年發生的事情確實讓開發者對它失去了以往的信心。與此同時Spring家族發布...

    Ali_ 評論0 收藏0

發表評論

0條評論

wqj97

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<