歡迎來到DIVCSS5查找CSS資料與學習DIV CSS布局技術!
前言
 
前端使用: vue/cli “^4.5.15”
 
后端使用: springboot2.6.2, mybatis-plus3.5.9,mybatis-plus-generator3.5.1
 
部署:nginx,tomcat,webpack
 
小結。雖然項目花里胡哨,但是難度不大。收獲最多的是:
 
1.技術選型,任務需求。一旦確定,后期變更代價慘重。
 
2. 注意備份
 
3.數據庫表單設計
 
4.bug解決方案
 
5.更深入體會的是MVVM架構開發模式,流水線式創建實體并實現業務邏輯:
 
domain/pojo/bean → dao/mapper → mapper.xml → service → serviceimpl → controller
 
6.記得優先對前端進行數據校驗。
 
感謝b站王漢遠前輩和開發中幫助我的人。由于版權原因,開源項目不公布任何歌曲
 
由于當時選型失誤,也沒有圍繞api開發。這就導致歌曲都是自己一首一首上傳的…因此技術選型是我踩得最大的坑。
 
一。成果展示
 
前臺大概總覽
 
后臺大概總覽
 
二。 后端流程
 
2.1數據庫表設計
 
在這一個單用戶項目中基本手握一本 java開發手冊,遵守其中規約就可以了。(但是這怎么說呢,目前階段感覺像雞肋。因此我接著打算看看mysql高級)
 
單用戶項目開發基本通用樣例,但仍然應當考慮自己項目的實際需求
 
2.2. 后端搭建
 
2.2.1 mybatis-plus逆向工程生成代碼簡化開發
 
為了方便開發,我們應當先建立數據庫。之后使用mybatis-plus的逆向工程,代碼生成器! 這里不建議使用 lombok 省略 實體的構造器和get,set方法。(我曾看到過這樣一句話,如果java內部到處充斥著這種像lmobok可以修改源代碼的插件,那么就如同無根浮萍,沒有自己的核心競爭力,java遲早被取代?。┑覀儾豢煞裾J,它也很方便,我一般用lombok主要是用他的@slf4j日志。
 
這種方式可以幫助我們自動生成
 
domain/pojo/bean(完全生成) → dao/mapper (生成模型和一般crud方法)→ mapper.xml (生成模型和一般crud方法)→ service (生成模型和一般crud方法)→ serviceimpl (生成模型和一般crud方法) → controller (生成模型和一般crud方法) 如果不滿意它自帶的crud方法,我們可以自己寫,建議自己寫!
 
該方法要注意的是mybatis-plus-generator3.5.1版本是一個轉變 代碼生成詳見此處
 
2.2.2 配置數據,跨域和靜態資源放行
 
由于基本配置是可以復用的,因此我將其粘貼下方。
 
采用 配置類和yaml配置文件相結合的方式
 
1.druid類配置文件
 
package com.vector.music.config;
 
import com.alibaba.druid.pool.DruidDataSource;
 
import com.alibaba.druid.support.http.StatViewServlet;
 
import com.alibaba.druid.support.http.WebStatFilter;
 
import org.springframework.boot.context.properties.ConfigurationProperties;
 
import org.springframework.boot.web.servlet.FilterRegistrationBean;
 
import org.springframework.boot.web.servlet.ServletRegistrationBean;
 
import org.springframework.context.annotation.Bean;
 
import org.springframework.context.annotation.Configuration;
 
import javax.annotation.PostConstruct;
 
import javax.sql.DataSource;
 
import java.sql.SQLException;
 
import java.util.Arrays;
 
/**
 
 * @author WangYuanJie
 
 * @description: about jdbcDruidConfig
 
 * @ClassName MyDataSourceConfig
 
 * @date 2022/1/21 16:17
 
 */
 
@Configuration
 
public class MyDataSourceConfig {
 
    @ConfigurationProperties(prefix = "spring.datasource")
 
    @Bean
 
    public DataSource dataSource() throws SQLException {
 
        DruidDataSource druidDataSource = new DruidDataSource();
 
        //加入監控功能
 
//        druidDataSource.setFilters("stat,wall");
 
        return druidDataSource;
 
    }
 
    /*
 
     * 解決druid 日志報錯:discard long time none received connection:xxx
 
     * */
 
    @PostConstruct
 
    public void setProperties(){
 
        System.setProperty("druid.mysql.usePingMethod","false");
 
    }
 
    /**
 
     * 配置druid的監控頁
 
     * @return
 
     */
 
    @Bean
 
    public ServletRegistrationBean statViewServlet(){
 
        StatViewServlet statViewServlet = new StatViewServlet();
 
        ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<>(statViewServlet, "/druid/*");
 
        registrationBean.addInitParameter("loginUsername","admin");
 
        registrationBean.addInitParameter("loginPassword","123456");
 
        return registrationBean;
 
    }
 
    /**
 
     * WebStatFilter用于采集web-jdbc關聯監控的數據
 
     */
 
    @Bean
 
    public FilterRegistrationBean webStatFilter(){
 
        WebStatFilter webStatFilter = new WebStatFilter();
 
        FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<>(webStatFilter);
 
        filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));
 
        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.ico,/druid/*");
 
        return filterRegistrationBean;
 
    }
 
}
 
2.后端解決跨域問題
 
/**
 
 * 解決跨域問題
 
 */
 
@Configuration
 
public class WebMvcConfig implements WebMvcConfigurer {
 
    @Override
 
    public void addCorsMappings(CorsRegistry registry) {
 
        registry.addMapping("/**")
 
                .allowedOriginPatterns("*")
 
                .allowCredentials(true)
 
                .allowedMethods("*");
 
    }
 
3.解決靜態資源放行問題
 
你可以將靜態資源放在你想放置的位置,但是盡量不要放在項目工程中,因為項目工程后來只會在內存中運行。不要增加內存負荷,而且你將會出現一個奇怪的問題 springboot圖片回顯 詳見此處
 
    /**
 
     * 默認情況下Spring Boot 使用WebMvcAutoConfiguration中配置的各種屬性。
 
     * 默認映射的文件夾有:
 
     * classpath:/META-INF/resources
 
     * classpath:/resources
 
     * classpath:/static
 
     * classpath:/public
 
     * 上面這幾個都是靜態資源的映射路徑,優先級順序為:META-INF/resources > resources > static > public
 
     * 原理: 靜態映射/**。
 
     * 請求進來,先去找Controller看能不能處理。不能處理的所有請求又都交給靜態資源處理器。靜態資源也找不到則響應404頁面
 
     * 靜態資源訪問前綴
 
     * 默認無前綴
 
     * spring:
 
     * mvc:
 
     * static-path-pattern: /res/**
 
     * 當前項目 + static-path-pattern + 靜態資源名 = 靜態資源文件夾下找
 
     */
 
    // 以下是自定義靜態資源訪問
 
    @Override
 
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
 
        /**
 
         * spring boot中上傳圖片回顯問題
 
         * 定位歌手頭像地址
 
         * 絕對路徑映射,這個不重新部署就可以回顯,因為映射你的本地
 
         */
 
        registry.addResourceHandler("static/**")。addResourceLocations(
 
                System.getProperty("user.dir") + File.separator + "static" + File.separator);
 
    }

如需轉載,請注明文章出處和來源網址:http://www.rs2pl.com/html/h65259.shtml

久久天天躁狠狠躁夜夜躁2020