SpringBoot企業級博客開發

 

 

 

1.springboot生成項目css

 PS : 進入項目,輸入gradle build,生成build文件夾;  而後進入libs有jar,使用java jar進行運行項目html

 

 

 

PS: 這個項目沒有準守restful APijava

 

 

 

 

 

PS: 順序掃描效率不高web

      全文搜索就是把無規則的再次組織造成有規律數據,再進行建立索引。spring

PS: 很是相似於查字典,能夠按照順序一個一個找,也能夠按照拼音找瀏覽器

------------------------------------------------------------------------安全

 

 

搜索引擎選擇: Elasticsearch與Solr, 目前es會更火爆

PS:索引能夠劃分紅 多個分片(由於索引的數據量太大,因此繼續劃分), 一個分片又能夠劃分紅多個副本springboot

PS: 近實時, 就是添加一個東西之後,不會立馬刷入磁盤,等個幾s才能查的到restful

PS: 類型,對索引進行分類app

PS: 文檔是進行索引的基本單位,每一個索引都有一個文檔與之對應

-------------------------------------------------------------------------------------------------------------------

 

PS : 安裝啓動es

PS:  和jpa相似 會根據名字查詢

 

PS : 這個normalize用來解決跨瀏覽器的一致性

 

-----------------------------------

 PS: 如今測試一個只根據    超小屏幕  和 中屏幕 開發的項目

 PS: 這是中屏幕的效果

 

 

 

------------------------實戰後臺

package com.waylau.spring.boot.blog.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * Spring Security 配置類.
 * 
 * @since 1.0.0 2017年3月8日
 * @author <a href="https://waylau.com">Way Lau</a>
 */
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true) // 啓用方法安全設置
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
    private static final String KEY = "waylau.com";
    
    @Autowired
    private UserDetailsService userDetailsService;

    @Autowired
    private PasswordEncoder passwordEncoder;
    
    @Bean  
    public PasswordEncoder passwordEncoder() {  
        return new BCryptPasswordEncoder();   // 使用 BCrypt 加密
    }  
    
    @Bean  
    public AuthenticationProvider authenticationProvider() {  
        DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
        authenticationProvider.setUserDetailsService(userDetailsService);
        authenticationProvider.setPasswordEncoder(passwordEncoder); // 設置密碼加密方式
        return authenticationProvider;  
    }  
 
    /**
     * 自定義配置,  !!!!必須重寫這個方法
     */
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/css/**", "/js/**", "/fonts/**", "/index").permitAll() // 均可以訪問
                .antMatchers("/h2-console/**").permitAll() // 均可以訪問
                .antMatchers("/admins/**").hasRole("ADMIN") // 須要相應的角色才能訪問,  只有admin才能訪問/admins/**
                .and()
                .formLogin()   //基於 Form 表單登陸驗證
                .loginPage("/login").failureUrl("/login-error") // 自定義登陸界面
                .and().rememberMe().key(KEY) // 啓用 remember me
                .and().exceptionHandling().accessDeniedPage("/403");  // 處理異常,拒絕訪問就重定向到 403 頁面
        http.csrf().ignoringAntMatchers("/h2-console/**"); // 禁用 H2 控制檯的 CSRF 防禦
        http.headers().frameOptions().sameOrigin(); // 容許來自同一來源的H2 控制檯的請求
    }
    
    /**
     * 認證信息管理
     * @param auth
     * @throws Exception
     */
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService);
        auth.authenticationProvider(authenticationProvider());
    }
}
package com.waylau.spring.boot.blog.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import com.waylau.spring.boot.blog.domain.Authority;
import com.waylau.spring.boot.blog.domain.User;
import com.waylau.spring.boot.blog.service.AuthorityService;
import com.waylau.spring.boot.blog.service.UserService;

/**
 * 主頁控制器.
 * 
 * @since 1.0.0 2017年3月8日
 * @author <a href="https://waylau.com">Way Lau</a> 
 */
@Controller
public class MainController {
    
    private static final Long ROLE_USER_AUTHORITY_ID = 2L;
    
    @Autowired
    private UserService userService;
    
    @Autowired
    private AuthorityService  authorityService;
    
    @GetMapping("/")
    public String root() {
        return "redirect:/index";
    }
    
    @GetMapping("/index")
    public String index() {
        return "redirect:/blogs";
    }

    /**
     * 獲取登陸界面
     * @return
     */
    @GetMapping("/login")
    public String login() {
        return "login";
    }

    @GetMapping("/login-error")
    public String loginError(Model model) {
        model.addAttribute("loginError", true);
        model.addAttribute("errorMsg", "登錄失敗,帳號或者密碼錯誤!");
        return "login";
    }
    
    @GetMapping("/register")
    public String register() {
        return "register";
    }
    
    /**
     * 註冊用戶
     * @param user
     * @param result
     * @param redirect
     * @return
     */
    @PostMapping("/register")
    public String registerUser(User user) {
        List<Authority> authorities = new ArrayList<>();
        authorities.add(authorityService.getAuthorityById(ROLE_USER_AUTHORITY_ID));
        user.setAuthorities(authorities);
        userService.saveUser(user);
        return "redirect:/login";
    }
    
    @GetMapping("/search")
    public String search() {
        return "search";
    }
}

--------------------------前臺

 

相關文章
相關標籤/搜索