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语句去了。

时间: 2024-08-26 12:30:32

Spring boot微信点餐系统学习笔记的相关文章

如何掌握 Spring,Spring Boot 全家桶?系统学习 Spring 的大纲一份(实战教学)

搞个推荐! 资深的 Spring 工程师应该都知道 Spring 界的大牛丁雪丰.作为平安壹钱包的高级架构师之余,他不仅翻译了<Spring Boot 实战><Spring 攻略>两本书,还出了一门一揽子解决 Spring 全家桶的课程<玩转 Spring 全家桶>. 他在推荐自己的这门课程时说, 市面上有很多书和教程,但对于很多开发人员,在学习 Spring 的时候,难免会遇到这些问题: 官方文档虽然全面,但面对庞杂的知识体系,很多初学者一时不知该从哪里下手: 手册式

Spring Boot微信点餐——实战开发DAO层

0. 修改grade镜像,使用阿里云地址,以便于快速加载依赖 参照大佬博客 =====> 阿里云maven镜像 # 项目目录下的build.gradle repositories { maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'} mavenLocal() mavenCentral() } # 或者找到GRADLE_HOME/init.d/ 或者是 GRADLE_HOME/init.d/ # .gradle目录

Spring Boot微信点餐——数据库设计

数据库设计: 具体代码如下: create table `product_info` ( `product_id` varchar(32) not null comment '商品ID', `product_name` varchar(64) not null comment '商品名称', `product_price` decimal(10,2) not null comment '商品单价', `product_stock` int not null comment '库存', `prod

java Spring Boot企业微信点餐系统

 java Spring Boot企业微信点餐系统 后端开发: 1.2017龙果微服务架构的分布式事务解决方案 2.2017年龙果spring boot 入门实战视频教程-首套中文教程 3.51CTO Spring Boot实战与原理分析视频课程 4.ElasticSearch5视频教程 5.Elasticsearch顶尖高手系列:高手进阶篇(最新第二版) 6.IDEA学习视频 7.Java 微服务实践 - Spring Boot 系列 8.JAVA-ACE-架构师系列视频课程-RocketMQ

基于Springboot+SpringCloud的微信点餐系统开发视频教程

基于Springboot+SpringCloud的微信点餐系统开发视频教程课程分享链接:https://pan.baidu.com/s/1q7h9zn8sGf_e0k38pc69tw 密码:fk9w 随着互联网不断发展,大家的生活习惯也不断在改变,像美团,饿了么平台的外卖快速的发展起来,这就是我们所说的O2O,即线上和线下结合同时微信也给人们带来了沟通的便利,现在几乎每个年轻人都会有微信号,所以我们开发微信点餐系统,也是极大方便了大家的使用,只要在打开微信进入我们的点餐系统就可以方便的进行点餐.

微铺子微信送餐系统 针对大学生兼职创业的实施方案

大学生活丰富多彩,但大多数人还是觉得虚度光阴,如何充分利用这些业余时间,发展自己的兼职业务呢?这里,微铺子给大家简单介绍一下大学生如何在校期间,利用微信送餐系统,自主创业! 微信就不多介绍了,几乎人手都有,那么,我们就好好的利用微信,来一次校园微营销! 准备工具: 1.微信公众帐号 2.微铺子系统 首先到微铺子官网注册帐号 ,然后申请试用,这里我们免费提供7天的试用哦. 接着,在配置里面,绑定微信公众帐号即可. 系统我们是有了,那如何营销呢? 这里,我们拿"校园卖水果"来说,我们开一个

微信小程序,学习笔记(一)框架,视图层

微信小程序,学习笔记(一)框架,视图层 学习链接:http://www.w3cschool.cn/weixinapp/ 因为其实并非原创,但是并没有什么好的类别可选,所以修改成:"翻译"了. 熟悉 文档结构介绍 --- [D] pages --- [D] utils --- [F] app.js --- [F] app.json --- [F] app.wxss 全局变量.对象.方法 普通类型 对象 App 应用程序全局实例,在app.js中定义,每个程序只有一个实例,可以通过如下方式

Linux系统学习笔记:序

Linux系统学习笔记:序 ??Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统. 本人使用的Linux为Ubuntu,主要以<APUE>(第3版)为学习蓝本. 1. Unix/Linux 体系结构 如图: 内核的接口被称为系统调用.公用函数库构建在

Dubbo -- 系统学习 笔记 -- 示例 -- 分组聚合

Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 分组聚合 按组合并返回结果,比如菜单服务,接口一样,但有多种实现,用group区分,现在消费方需从每种group中调用一次返回结果,合并结果返回,这样就可以实现聚合菜单项. 从2.1.0版本开始支持 配置如:(搜索所有分组) <dubbo:reference interface="com.xxx.MenuService" group="*" m