一、创建SpringBoot的三种方式

  1. 在线创建: https://start.spring.io
  2. 在IntelliJ IDEA中选择Spring Initializr创建;或者在Eclipse中选择 New -> Spring Starter Project创建(本质于第一种创建方式相同)
  3. 通过Maven创建,选择maven-archetype-quickstart骨架并在pom文件见中添加如下依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

二、配置启动类

配置App 的启动类,如下:

@SpringBootApplication
public class App
{
public static void main(String[] args) {
    SpringApplication.run(App. class,args);
}
}

这就可以启动一个SpringBoot工程了。

三、整合MyBatis

依次添加mysql数据库、druid数据库连接池、mybatis依赖

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.13</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>

配置mybatis逆向工程插件

<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<!--要使用该插件还需要依赖generator-core -->
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
<!--需要对mysql数据库解析的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
</dependencies>
<!--在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。-->
<!--简单来说:这段配置是用来启动逆向工程配置文件的 -->
<executions>
<!--execution元素包含了插件执行需要的信息-->
<execution>
<!--执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标-->
<id>mybatis-generator</id>
<!--绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段-->
<phase>package</phase>
<!--配置的执行目标-->
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<!--作为DOM对象的配置-->
<configuration>
<!--允许移动生成的文件 -->
<verbose>true</verbose>
<!--允许自动覆盖文件,注意:在企业中,不要设置为true,容易毁掉别人的劳动成果 -->
<overwrite>true</overwrite>
<!--配置文件路径 -->
<configurationFile>src/main/resources/mybatis-generator.xml</configurationFile>
</configuration>
</plugin>

编写mybatis-generator.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration>
<!-- targetRuntime 可以设置生成代码的版本:
1. MyBatis3 功能复杂版本(豪华版)
2. MyBatis3Simple 只有简单的CRUD功能版本
-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- Mysql数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/Ecommerce_spike?serverTimezone=Asia/Shanghai"
userId="root"
password="root" /> <!-- 默认为false,把JDBC DECIMAL 和NUMERIC类型解析为Integer,
为true时 把JDBC DECIMAL 和NUMERIC类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver> <!--
javaModelGenerator 生成JavaBean
targetPackage 指定生成包的位置
targetProject:指定生成项目位置
-->
<javaModelGenerator
targetPackage="com.miaoshaProject.Entity" targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator> <!--
sqlMapGenerator 生成Mapper.xml配置信息
targetPackage 指定生成包的位置
targetProject:指定生成项目位置
-->
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator> <!--
javaClientGenerator 生成Mapper接口信息
targetPackage 指定生成包的位置
targetProject:指定生成项目位置
-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.miaoshaProject.Dao" targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator> <!-- 指定数据表:
table标签:一个标签对应一个数据库表
tableName:对应数据库表名
domainObjectName:对应生成JavaBean类名
enableCountByExample="false" 可以避免生成-Example类
因为在实际生产中,遇到复杂的sql语句是通过自己编写完成的而不是通过使用-Example类完成
这样就只会生成简单的sql方法
-->
<table tableName="user_info" domainObjectName="User"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"></table>
<table tableName="user_password" domainObjectName="Password"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"></table> </context> </generatorConfiguration>

运行该配置文件Run->Edit Configurations...,创建一个Maven,重点是配置Command line 要与上面pox文件中

<execution>标签中的内容对应。
mybatis-generator:generate对应<execution>标签中的<id>和<goal>

运行即可生成相应的实体类、mapper文件等。

再配置application.yml文件

server:
port: 8080
spring:
application:
name: E-commerce_spike
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/Ecommerce_spike?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
#配置druid数据连接池
type: com.alibaba.druid.pool.DruidDataSource mybatis:
mapper-locations: classpath:mapper/*.xml

注意:mapper.xml文件放在了resource目录下。

若和mapper接口放在一起,maven工程在打包时会将xml文件忽略,需要在pom文件中添加以下配置:

<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>

 四、测试

@SpringBootApplication
//@EnableAutoConfiguration 表示开启自动化配置,与上面的注解异曲同工的功能
public class App
{
public static void main(String[] args) {SpringApplication.run(App. class,args);} @Resource
private UserMapper userMapper; @GetMapping("/hello")
public String Hello(){
User user = userMapper.selectByPrimaryKey(1);
if (user == null){
return "对象不存在";
}else{
System.out.println(user.getName());
return "yes";
}
}
}

访问localhost:8080/hello查看返回结果。

快速搭建springboot工程的更多相关文章

  1. 在线官网Spring Initializr 或 IntelliJ IDEA 快速搭建springboot项目

    Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程.它主要推崇的是'消灭配置’,实现零配置. 那么,如何快速新建一个一个spring ...

  2. 聊聊SpringBoot | 第一章:快速搭建SpringBoot第一个应用

    快速搭建SpringBoot第一个应用 1.简介 本章仅介绍如何快速搭建第一个SpringBoot应用,细节内容下一章再做讲解,如果有需要,各位可以直接到Spring官网去了解. 从 Spring B ...

  3. 快速搭建springboot框架以及整合ssm+shiro+安装Rabbitmq和Erlang、Mysql下载与配置

    1.快速搭建springboot框架(在idea中): file–>new project–>Spring Initializr–>next–>然后一直下一步. 然后复制一下代 ...

  4. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-2.快速搭建SpringBoot项目,采用IDEA

    笔记 2.快速搭建SpringBoot项目,采用IDEA     简介:使用SpringBoot start在线生成项目基本框架并导入到IDEA中 参考资料:         IDEA使用文档    ...

  5. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-1.快速搭建SpringBoot项目,采用Eclipse

    笔记 1.快速搭建SpringBoot项目,采用Eclipse     简介:使用SpringBoot start在线生成项目基本框架并导入到eclipse中 1.站点地址:http://start. ...

  6. 使用IDEA快速搭建Springboot项目

    Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程.它主要推崇的是'消灭配置’,实现零配置. 下面就介绍一下如何使用idea快速搭建 ...

  7. 使用quickstart方式快速搭建maven工程

    通常idea 创建maven工程,初始化会比较慢,针对这种现象.我们可以使用一些巧妙的方式来帮助快速搭建 废话不多说直接上图! 图1 使用 archetype-quickstart  选择 图二 点击 ...

  8. IDEA下从零开始搭建SpringBoot工程

    SpringBoot的具体介绍可以参看其他网上介绍,这里就不多说了,就这几天的学习,个人理解,简而言之: (1)它是Spring的升级版,Spring容器能做到的事情,它都能做到,而且更简便,从配置形 ...

  9. 如何基于 Docker 快速搭建 Springboot + Mysql + Redis 项目

    目录 前言 项目目录 搭建项目 1. docker安装启动mysql以及redis 1.1 安装mysql 1.2 安装redis 2. 初始化数据库 3.创建项目 4.初始化代码 4.1 全局配置文 ...

随机推荐

  1. SpringBoot 之 多环境切换

    方式一:分开多个配置文件 # /src/main/resources/application.yaml server: port: 8080 spring: profiles: active: dev ...

  2. 初识python: 面向对象是个啥?

    编程范式:编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 ,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多 ...

  3. kafka学习笔记(七)kafka的状态机模块

    概述 这一篇随笔介绍kafka的状态机模块,Kafka 源码中有很多状态机和管理器,比如之前我们学过的 Controller 通道管理器 ControllerChannelManager.处理 Con ...

  4. 万字总结Keras深度学习中文文本分类

    摘要:文章将详细讲解Keras实现经典的深度学习文本分类算法,包括LSTM.BiLSTM.BiLSTM+Attention和CNN.TextCNN. 本文分享自华为云社区<Keras深度学习中文 ...

  5. JavaScript输出的两种方式

    var a="Hello World" document.write(a) //在网页上输出:Hello World var a="Hello World" c ...

  6. Java传递变量和对象的区别

    传递对象 public class Demo03 { //引用传递:(实际上还是值传递)对于引用数据类型来说,传递的则是地址的副本(对象的地址).但由于地址副本和原来的类似,因此传递过去后形参也只想同 ...

  7. python测试框架-pytest

    一.pytest 介绍.运行.参数化和数据驱动.Fixture pytest安装与介绍 官网 : pip install -U pytest 查看版本号:pytest --version 为何选择py ...

  8. android ndk下没有pthread_yield,好在std::this_thread::yield()可以达到同样的效果

    一个多线程的算法中,发现线程利用率只有47%左右,大量的处理时间因为usleep(500)而导致线程睡眠: 性能始终上不去. 把usleep(500)修改为std::this_thread::yiel ...

  9. 安卓开发之intent

    两个活动之间的跳转要通过intent来进行,intent跳转分为隐式的和显示的. 首先xml中定义Button,通过按下按钮实现回调,在回调函数中进行相应intent设置. <Button an ...

  10. Go 面向对象之结构体

    #### Go 面向对象之结构体最近有四天没更新公众号,有一些事情耽误了,生活就是这样,总会一些事情让人措不及防; ***山浓水浅,坐看流年***1. Go 也支持面向对象编程(OOP) 但是它和传统 ...