Spring boot微信點餐系統學習筆記


說起java,大學的時候自學了兩個月就放棄了,轉而學習C++,現在畢業才發現很多好的想法,從策划到具體實現,都要根據自身能力來挑選框架,進而學習語言,熟練使用C++后去學習其他的語言那才是輕車熟路,基本上兩個月就能掌握,畢竟事物是普遍存在聯系性的。

學習Spring Boot先要從Spring MVC說起,剛開始接觸spring mvc,個人趕緊它對XML的依賴太大,然而,配置XML是一件痛苦的事,對於我來說。boot是最佳選擇,干凈利落,讓人專注於業務的邏輯現實,而不用寫一堆配置。一堆XML配置帶來的問題就是后期難以維護,畢竟XML需要耐心去看,而且大部分時間里,你幾乎都是在寫XML,意義何在?

技術棧:spring boot + vue + Hibernate + maven + mysql 

先從pom文件開始:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.leekin</groupId>
    <artifactId>sell</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>sell</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <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>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.3.10.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

其他的不做介紹,都是常用組件,這里用到了lombok,他的作用在於寫數據庫映射類的時候只要加入@Data注解,就可以不用寫getter和setter方法。

另外一個是log4j日志系統,logback日志系統能夠將日志寫入到文件,一下是我的配置,將警告和error分開寫入以及一些規則的配置(文件名很重要logback-spring.xml):

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <layout>
            <pattern>
                %d - %msg%n
            </pattern>
        </layout>
    </appender>

    <!--運行日志配置項-->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch><!--命中則攔截-->
            <onMismatch>ACCEPT</onMismatch><!--沒有命中則使用該條規則-->
        </filter>
        <encoder>
            <pattern>
                %msg%n
            </pattern>
        </encoder>
        <!--滾動策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件路徑-->
            <fileNamePattern>D:/DevelopFiles/SpringMVC/sell/SellLog/sell-info-%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <!--程序錯誤日志配置項-->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>
                %msg%n
            </pattern>
        </encoder>
        <!--滾動策略:每一天都創建一個文件-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件路徑-->
            <fileNamePattern>D:/DevelopFiles/SpringMVC/sell/SellLog/sell-error-%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>
<!--攔截的級別是info,級別分為debug,info,error-->
<root level="info"> <appender-ref ref="consoleLog" /> <appender-ref ref="fileInfoLog"/> <appender-ref ref="fileErrorLog"/> </root> </configuration>

一切准備工作完成,開始設計數據庫,對於新手來說這是一個痛苦的過程,寫sql語句也要十分細心,沒耐心就用navicat來生成。

數據庫ER圖:

2 more column是create_time和update_time。

數據庫設計完畢后開始寫業務邏輯。

眾所周知,數據庫映射類是一個強大的功能,數據庫表名對應類名稱,屬性對應字段名稱,加入@Data注解省去幾十行代碼,對屬性的操作就是對字段內數據的增刪改,這種持久化操作很強大,Hibernate大法好,省去了寫sql語句。讓人更能專注於業務邏輯的開發,而不用維護sql語句去了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM