spring boot项目搭建示例①

所用技术:JDK1.7、Mysql、spring boot、Logback、Mybatis

开发工具:Myeclipse、Maven

1.数据库创建:

CREATE TABLE `userinfo` (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) DEFAULT NULL,
  `password` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

2.创建Maven工程

步骤:

①、Ctrl+N-->选择Maven Project


②、勾选Create a simple project (skip archetype selection)-->点击Next


③、输入Group Id、Artifact Id,选择packaging为war,点击Finish


项目结构如下:


3、导入spring boot所需jar包

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.hu</groupId>
  <artifactId>SpringBootPro</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <!-- spring boot jar -->
  <dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
		<type>pom</type>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
		<version>1.5.9.RELEASE</version>
	</dependency>
	<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>1.5.9.RELEASE</version>
        <scope>test</scope>
    </dependency>
  </dependencies>
  <build/>
</project>

4.增加application.properties属性文件

在src/main/resources下新建文件

application.properties:

server.port=8010
server.contextPath=/springboot

5、增加启动类

MainServer.java:

package com.hu.server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

项目结构如下:


6、启动测试

现在可以检查一下是否搭建成功了,在MainServer中右键-->run as/debug as -->java application


控制台出现如下便是成功了:


7.编写第一个测试接口

①、将MainServer.java申明当前为Controller

②、添加测试接口地址

③、启动main方法,前端访问

代码如下:

package com.hu.server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@SpringBootApplication
public class MainServer {
	public static void main(String[] args) {
		SpringApplication.run(MainServer.class, args);
	}
	
	@RequestMapping(value = "/hello")
	public @ResponseBody String hello(){
		return "Hello Boot";
	}
}

前端访问接口:


8、整合日志框架

①、导入日志jar包pom.xml下增加:

<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-logging</artifactId>
		<version>1.5.9.RELEASE</version>
	</dependency>

②、增加logback.xml配置文件,放到resource目录下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--定义日志文件的存储地址 勿在 LogBack 中使用相对路径-->
    <property name="LOG_HOME" value="C:\Users" />
    <!-- 不用彩色控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--<!–格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符–>-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- 按照每天生成日志文件 -->
    <appender name="DAYINFO"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
     <FileNamePattern>${LOG_HOME}/TestSpringBoot_info.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>info</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--日志文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <appender name="DAYERROR"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
 <FileNamePattern>${LOG_HOME}/TestSpringBoot_error.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>error</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--日志文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="DAYERROR" />
        <appender-ref ref="DAYINFO" />
    </root>
</configuration>

代码引用:


9、整合Mybatis

①、导入Mybatis和Mysql的jar包

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

②、在application.properties文件中配置数据库连接信息

server.port=8010
server.contextPath=/springboot
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

③、新建Controller、entity、service、dao包


④、添加接口、实现类、实体、sql语句

User.java:

package com.hu.entity;

public class User{
	private int id;
	private String username;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "Customer [id=" + id + ", username=" + username + ", password="
				+ password + "]";
	}
	
	
}

UserDao.java:

package com.hu.dao;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.hu.entity.User;
@Mapper
public interface UserDao {
	 @Select("select * from userinfo where username = #{username}")
	 User findByName(@Param("username") String username);
	 @Insert("insert into userinfo (username, password) values(#{username}, #{password})")
	 int insert(@Param("username") String name, @Param("password") String password);
}

UserService.java:

package com.hu.service;

import org.springframework.stereotype.Service;

import com.hu.entity.User;

@Service("userService")
public interface UserService {
	//查询
	 public User findByname(String username);
	 //增加
	 public int insertUser(String username,String password);
}

UserServiceImpl.java:

package com.hu.service.impl;

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

import com.hu.dao.UserDao;
import com.hu.entity.User;
import com.hu.service.UserService;

@Service("userService")
public class UserServiceImpl implements UserService {
	@Autowired
	UserDao userDao;
	
	@Override
	public User findByname(String username) {
		// TODO Auto-generated method stub
		User userinfo = userDao.findByName(username);
		return userinfo;
	}

	@Override
	public int insertUser(String username, String password) {
		// TODO Auto-generated method stub
		return userDao.insert(username, password);
	}

}

UserController.java:

package com.hu.Controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.hu.entity.User;
import com.hu.service.UserService;
@Controller
public class UserController {
	private final Logger log = LoggerFactory.getLogger(UserController.class);
	
	@Autowired
	private UserService userService;
	
	@RequestMapping(value = "/add",method = RequestMethod.GET)
	public @ResponseBody String addUser() {
		userService.insertUser("xiaoming","111111");
        return "插入成功";
    }
	@RequestMapping(value="/find",method=RequestMethod.GET)
	public @ResponseBody User queryUserByName(String username){
		User userinfo = userService.findByname(username);
		return userinfo;
	}
}

MainServer.java:

package com.hu.server;

import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan(basePackages={"com.hu"})
@MapperScan({"com.hu.dao"})
public class MainServer {
	private final Logger log = LoggerFactory.getLogger(MainServer.class);
	public static void main(String[] args) {
		SpringApplication.run(MainServer.class, args);
	}
	
}

10.测试接口数据插入及查询

①、启动主函数

②、测试接口




到这里基本上一个spring boot框架项目就搭建好了,只不过这个还不支持mybatis映射及jsp页面,下一篇我们讲解。

喜欢就请关注!!后续还有spring boot 打包及发布博文--------

spring boot打成jar包发布示例:《spring boot 项目打成jar包发布示例(一)》


项目源码:https://download.csdn.net/download/huxiangen/10530109



猜你喜欢

转载自blog.csdn.net/huxiangen/article/details/80911192