整合流程:

一、项目结构

  

二、上代码

  App.java

 1 package com.CCBK.app;
 2 
 3 import org.springframework.boot.SpringApplication;
 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
 5 
 6 /**
 7  * Hello world!
 8  *
 9  */
10 //@EnableAutoConfiguration
11 //@ComponentScan
12 
13 //同时使用上面两个注解或者单独使用下面一个注解才能有扫描功能,扫描其他的controller
14 @SpringBootApplication
15 public class App {
16     
17     public static void main(String[] args) throws Exception {
18         SpringApplication.run(App.class, args);
19     }
20 }

  UserController.java

package com.CCBK.app.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.CCBK.app.entity.User;
import com.CCBK.app.service.UserService;

@Controller
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/getUserInfo")
    @ResponseBody
    public List<User> getUserInfo() {
        List<User> user = userService.getUserInfo();
        System.out.println(user.toString());
        return user;
    }

    @RequestMapping("/addUserInfo")
    @ResponseBody
    public String addUserInfo() {
        User user = new User();
        user.setId(3L);
        user.setName("cwh");
        userService.insert(user);
        return "success:" + user.toString();
    }

}

  User.java

package com.CCBK.app.entity;

import java.io.Serializable;

public class User implements Serializable {

    private static final long serialVersionUID = 1L;
    private Long id;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o)
            return true;
        if (o == null || getClass() != o.getClass())
            return false;

        User user = (User) o;

        if (id != null ? !id.equals(user.id) : user.id != null)
            return false;

        return true;
    }

    @Override
    public int hashCode() {
        return id != null ? id.hashCode() : 0;
    }
}

  UserMapper.java

package com.CCBK.app.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.CCBK.app.entity.User;

@Mapper
public interface UserMapper {

    public List<User> findUserInfo();

    public int addUserInfo(User user);

    public int delUserInfo(int id);
}

  UserService.java

package com.CCBK.app.service;

import java.util.List;

import com.CCBK.app.entity.User;

public interface UserService {
    public List<User> getUserInfo();

    public void insert(User user);
}

  UserServiceImpl.java

package com.CCBK.app.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.CCBK.app.entity.User;
import com.CCBK.app.mapper.UserMapper;
import com.CCBK.app.service.UserService;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    public List<User> getUserInfo() {
        return userMapper.findUserInfo();
    }

    public void insert(User user) {
        userMapper.addUserInfo(user);

    }
}

  UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.CCBK.app.mapper.UserMapper">

    <select id="findUserInfo" resultType="com.CCBK.app.entity.User">
        select id,name from t_user;
    </select>
    <insert id="addUserInfo" parameterType="com.CCBK.app.entity.User">
        insert into t_user (id, name
        )
        values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}
        )
    </insert>
    <delete id="delUserInfo" parameterType="java.lang.Integer">
        delete from t_user where id = #{id,jdbcType=INTEGER}
    </delete>

</mapper>  

  application.properties

spring.datasource.url=jdbc\:mysql\://127.0.0.1\:3306/ccbk?useUnicode\=true&characterEncoding\=gbk&zeroDateTimeBehavior\=convertToNull  
spring.datasource.username=root  
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver  
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource  
# \u521D\u59CB\u5316\u5927\u5C0F\uFF0C\u6700\u5C0F\uFF0C\u6700\u5927    
spring.datasource.initialSize=5    
spring.datasource.minIdle=5    
spring.datasource.maxActive=20    
# \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4    
spring.datasource.maxWait=60000    
  
mybatis.mapper-locations=classpath*:mapper/*Mapper.xml  
mybatis.type-aliases-package=com.CCBK.app.entity  

  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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ccbookkeeping</groupId>
    <artifactId>CCBookKeeping</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>CCBookKeeping</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
        <relativePath />
    </parent>


    <dependencies>
        <!-- 上边引入 parent,因此 下边无需指定版本 -->
        <!-- 包含 mvc,aop 等jar资源 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>


<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency>

<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-joda</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-parameter-names</artifactId> </dependency> <!-- alibaba的druid数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

 

 

三、总结

  折腾了一上午的结果,主要问题是自己不仔细和不认真看官方文档导致的,碰到的问题如下

  1.自定的controller不能访问

    前台无法访问,报错如下

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sun Mar 25 11:51:37 CST 2018
There was an unexpected error (type=Not Found, status=404).
No message available

 

  2.controller中@autowried注入service报错

    找不到UserService,报错如下

***************************
APPLICATION FAILED TO START
***************************

Description:

Field userService in com.CCBK.app.controller.UserController required a bean of type 'com.CCBK.app.service.UserService' that could not be found.


Action:

Consider defining a bean of type 'com.CCBK.app.service.UserService' in your configuration.

 

以上两个问题归根结底是因为main方法所在的类App.java放的位置不对,此项目中App.java要和其他的包放在同级

 

具体springboot的详细使用还在探索中,如果以上有理解错误的地方希望各位前辈指正🙏🙏

 

posted on 2018-03-25 12:04  流氓悍匪  阅读(1425)  评论(0编辑  收藏  举报