第一个SpringBoot+MyBatis+JSR303项目

Maven的包基本就这些,现在大多数使用springboot的项目应该都是使用jdk1.8的吧,所以项目的jdk设置成1.8

POM.xml

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>springboot</groupId>
  <artifactId>hellowold</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>hellowold Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.6.RELEASE</version>
  </parent>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter -->
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <optional>true</optional>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok-maven-plugin -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok-maven-plugin</artifactId>
      <version>1.16.18.1</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.18</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator</artifactId>
    </dependency>
  </dependencies>
  <properties>
    <java.version>1.8</java.version>
  </properties>
  <build>
    <finalName>hellowold</finalName>
  </build>
</project>


配置方面是用的是yaml进行配置,所以需要引入spring-boot-configuration-processor包,配置看上去层次分明,更加直观
 
 

server:
 port: 80
spring:
 datasource:
   name: test
   url: jdbc:mysql://192.168.1.105:3306/test
   username: root
   password: 123456
   # 使用druid数据源
   type: com.alibaba.druid.pool.DruidDataSource
   driver-class-name: com.mysql.jdbc.Driver
   filters: stat
   maxActive: 20
   initialSize: 1
   maxWait: 60000
   minIdle: 1
   timeBetweenEvictionRunsMillis: 60000
   minEvictableIdleTimeMillis: 300000
   validationQuery: select 'x'
   testWhileIdle: true
   testOnBorrow: false
   testOnReturn: false
   poolPreparedStatements: true
   maxOpenPreparedStatements: 20
mybatis:
 mapperLocations: classpath:app/com/kenho/mapper/*Mapper.xml

SpringBoot的启动文件放的位置比较讲究,基本上把启动文件放在一个包下,然后项目的需要的各种累放在启动文件下的下级目录,这样启动的时候才能被扫描的到,所以控制类,服务类,dao类。就要添加上@RestController @Service @Repository注解,SpringBoot现在用REST风格比较多,所以使用的注解式@RestController他等于@ResponseBody+@Controller,其次就是控制类的bean注入最好是引用@Resource,因为@Resource是按照名字进行匹配,找不到匹配的bean才进行类型的匹配

package app.com.kenho.web.controller;

import app.com.kenho.domain.Logininfo;
import app.com.kenho.service.ILoginService;
import app.com.kenho.service.impl.LoginServiceImpl;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.naming.Binding;
import javax.validation.Valid;
import java.util.List;

/**
 * Created by Stephanie on 2017/8/19.
 */
@RestController
public class indexController {
    @Resource
    private ILoginService loginServiceImpl;

    @RequestMapping(value = "logininfo/{username}/{password}",method = RequestMethod.GET)
    public Logininfo getlogininfo(@PathVariable("username")String username,@PathVariable("password")String password)
    {
        //loginServiceImpl.getLoginInfo("stephanie","81DC9BDB52D04DC20036DBD8313ED055");
        return loginServiceImpl.getLoginInfo(username,password);
    }

    @RequestMapping(value = "logininfo",method = RequestMethod.POST)
    public void valid(@Validated Logininfo logininfo, BindingResult bindingResult)
    {
        if(bindingResult.hasErrors())
        {
            List<ObjectError> list = bindingResult.getAllErrors();
            StringBuilder stringBuilder = new StringBuilder();
            for(ObjectError  error:list){
                System.out.println("\n"+error.getDefaultMessage());
            }
        }
        else
        {
            loginServiceImpl.insert(logininfo);
        }
    }
}


获取数据



jsr303校验


项目git: https://github.com/tale2009/springboot
 

猜你喜欢

转载自blog.csdn.net/kiranet/article/details/77512779
今日推荐