Spring Boot 構建電商基礎秒殺項目 (一) 項目搭建

SpringBoot構建電商基礎秒殺項目 學習筆記html

Spring Boot 其實不是什麼新的框架,它默認配置了不少框架的使用方式,就像 maven 整合了全部的 jar 包, Spring Boot 整合了全部的框架,並經過一行簡單的 main 方法啓動應用java

使用 IDEA 新建 maven-archetype-quickstart 項目mysql

添加 Spring Boot 依賴

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
  
  
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

修改 App.javagit

@EnableAutoConfiguration
@RestController
public class App 
{
    @RequestMapping("/")
    public String home(){
        return "Hello World!";
    }

    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );

        SpringApplication.run(App.class, args);
    }
}

運行,在瀏覽器輸入:localhost:8080github

注:8080 是默認端口,若是要使用其餘端口,能夠在 application.properties 修改,如:server.port=8090web

接入 Mybatis

添加依賴

<!--mysql jdbc 配置-->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.41</version>
</dependency>
<!--阿里巴巴德魯伊鏈接池-->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.1.3</version>
</dependency>
<!--spring boot 對 mybatis 的支持-->
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.3.1</version>
</dependency>


<!--mybatis 自動生成工具用來生成對應的數據庫文件的映射-->
<plugin>
  <groupId>org.mybatis.generator</groupId>
  <artifactId>mybatis-generator-maven-plugin</artifactId>
  <version>1.3.5</version>
  <dependencies>
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.5</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.41</version>
    </dependency>
  </dependencies>
  <executions>
    <execution>
      <id>mybaits generator</id>
      <phase>package</phase>
      <goals>
        <goal>generate</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <!--容許移動生成的文件-->
    <verbose>true</verbose>
    <!--容許文件自動覆蓋,實際開發中千萬不要設置爲 true-->
    <overwrite>true</overwrite>
    <!--generator 配置文件路徑-->
    <configurationFile>
      src/main/resources/mybatis-generator.xml
    </configurationFile>
  </configuration>
</plugin>

在 application.properties 添加配置

mybatis.mapper-locations=classpath:mapping/*.xml

新建數據表

數據庫名爲 seckillspring

create table if not exists user_info(
    id int not null auto_increment,
    name varchar(64) not null default '',
    gender tinyint not null default 0 comment '1: 男, 2: 女',
    age int not null default 0,
    telphone varchar(16) not null default '',
    register_mode varchar(64) not null default '' comment 'byphone, bywechat, byalipay',
    third_party_id varchar(64) not null default '',
    primary key (id)
);

create table if not exists user_password (
    id int not null auto_increment,
    encrpt_password varchar(128) not null default '',
    user_id int not null default 0,
    primary key (id)
);

添加配置文件 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">

<!--http://www.mybatis.org/generator/configreference/xmlconfig.html-->

<generatorConfiguration>

    <context id="MySQLTables" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/seckill"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <!--生成 DataObject 類存放位置-->
        <javaModelGenerator targetPackage="com.karonda.dataobject" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!--生成映射文件存放位置-->
        <sqlMapGenerator targetPackage="mapping"  targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!--生成 Dao 類存放位置-->
        <!--客戶端代碼,生成易於使用的針對 Model 對象和 XML 配置文件的代碼-->
            <!--type="ANNOTATEDMAPPER", 生成 Java Model 和基於註解的 Mapper 對象-->
            <!--type="MIXEDMAPPER", 生成基於註解的 Java Model 和相應的 Mapper 對象-->
            <!--type="XMLMAPPER", 生成 SQLMap XML 文件和獨立的 Mapper 接口-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.karonda.dao"  targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!--生成對應表及類名-->
        <!--*Example 禁用自動生成的複雜查詢-->
        <table tableName="user_info" domainObjectName="UserDO"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"></table>
        <table tableName="user_password" domainObjectName="UserPasswordDO"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"></table>

    </context>
</generatorConfiguration>

新建 Maven 命令

Run -- Edit Configurations -- 新增 -- Maven:sql

  • Name: mybatis-generator
  • Command line: mybatis-generator:generate

Run 'mybatis-generator'數據庫

配置數據源

在 application.properties 添加配置:瀏覽器

spring.datasource.name=seckill
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/seckill
spring.datasource.username=root
spring.datasource.password=root

# 使用 druid 數據源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

修改 App.java

@SpringBootApplication(scanBasePackages = {"com.karonda"})
@RestController
@MapperScan("com.karonda.dao")
public class App {

    @Autowired
    private UserDOMapper userDOMapper;

    @RequestMapping("/")
    public String home(){
        UserDO userDO = userDOMapper.selectByPrimaryKey(1);
        if(userDO == null){
            return "用戶對象不存在";
        }else{
            return userDO.getName();
        }
    }

    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );

        SpringApplication.run(App.class, args);
    }
}

源碼:spring-boot-seckill

相關文章
相關標籤/搜索