多端全棧專案實戰:大型商業級代駕業務全流程落地【Wan整】
連結: https://pan.baidu.com/s/1d6YONkCi4u7T1ZBm1yZLYg 提取碼: iamh
作者-\/ 307570512
大型商業級代駕業務微服務務架構
微服務架構(通常簡稱為微服務)是指開發應用所用的一種架構形式。 通過微服務,可將大型應用分解成多個獨立的元件,其中每個元件都有各自的責任領域。 在處理一個使用者請求時,基於微服務的應用可能會呼叫許多內部微服務來共同生成其響應。 容器是微服務架構的絕佳示例,因為它們可讓您專注於開發服務,而無需擔心依賴項。
這種單體應用比較適合於小專案,優點是:
開發簡單直接,集中式管理
基本不會重複開發
功能都在本地,沒有分散式的管理開銷和呼叫開銷
spingboot多端全棧專案實戰
第一步:匯入jar包
pom中匯入mybatis plus的jar包,因為後面會涉及到程式碼生成,所以我們還需要匯入頁面模板引擎,這裡我們用的是freemarker。
<!--mp--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--mp程式碼生成器--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.2.0</version> </dependency>
第二步:然後去寫配置檔案
# DataSource Config spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/vueblog?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: root password: admin mybatis-plus: mapper-locations: classpath*:/mapper/**Mapper.xml
上面除了配置資料庫的資訊,還配置了myabtis plus的mapper的xml檔案的掃描路徑,這一步不要忘記了。
第三步:開啟mapper介面掃描,新增分頁外掛
新建一個包:通過@mapperScan註解指定要變成實現類的介面所在的包,然後包下面的所有介面在編譯之後都會生成相應的實現類。PaginationInterceptor是一個分頁外掛。
com.markerhub.config.MybatisPlusConfig
@Configuration
@EnableTransactionManagement
@MapperScan("com.markerhub.mapper")
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
return paginationInterceptor;
}
}
第四步:程式碼生成
如果你沒再用其他外掛,那麼現在就已經可以使用mybatis plus了,官方給我們提供了一個程式碼生成器,然後我寫上自己的引數之後,就可以直接根據資料庫表資訊生成entity、service、mapper等介面和實現類。
com.markerhub.CodeGenerator
因為程式碼比較長,就不貼出來了,在程式碼倉庫上看哈!
首先我在資料庫中新建了一個user表:
CREATE TABLE `m_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(64) DEFAULT NULL,
`avatar` varchar(255) DEFAULT NULL,
`email` varchar(64) DEFAULT NULL,
`password` varchar(64) DEFAULT NULL,
`status` int(5) NOT NULL,
`created` datetime DEFAULT NULL,
`last_login` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `UK_USERNAME` (`username`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `m_blog` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) NOT NULL,
`title` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
`content` longtext,
`created` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP,
`status` tinyint(4) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;
INSERT INTO `vueblog`.`m_user` (`id`, `username`, `avatar`, `email`, `password`, `status`, `created`, `last_login`) VALUES ('1', 'markerhub', 'https://image-1300566513.cos.ap-guangzhou.myqcloud.com/upload/images/5a9f48118166308daba8b6da7e466aab.jpg', NULL, '96e79218965eb72c92a549dd5a330112', '0', '2020-04-20 10:44:01', NULL);