第一步:需要先下载springboot的插件
参考 :https://blog.csdn.net/mashuai720/article/details/79993450
1.eclipse -> help -> eclipse Marketplaces 搜索sts,然后安装,一直next就成。
2.安装完后重启eclipse,并查看eclipse preferences,可以看到spring参数选项,说明spring tools插件安装成功
第二步:
创建springboot项目
新建----》其他----》Spring Starter Project
接着,name填入项目名称,group随意,其他的不用管(默认)
next,version选择1.5.11(旧的版本比较稳定)
web选项 选中(因为不选中这个可能启动不了) 必填
DevTools选项为热部署插件 可以自己选择添加或不添加 选填 (参考:SpringBoot配置devtools实现热部署https://www.cnblogs.com/lspz/p/6832358.html )
点击next/finish均可,项目创建完毕,目录如下:
在项目中找到Application启动,如果可以 启动那么说明项目创建成功 然后添加测试类和页面
第三步:写一个简单示例。
1.在src/man/java中创建如下Controller类:
package wang.test.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller //标识一个控制器 接收用户请求,RestController=Controller+ResponseBody
public class TestController {
@RequestMapping("/index")//HTTP请求
public String test() {
System.out.println("TestController>>>test>>>is running....return a string");
return "index";//返回一个视图(HTML页面)
}
}
在src/man/resources中的template文件夹下创建一个index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Insert title here</title>
</head>
<body>
hello,this is index.html2...
</body>
</html>
为了使得SpringBoot能够返回前端界面,需要在pom.xml中添加一个依赖。
<!-- thymeleaf,for html,jsp... -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<scope></scope>
</dependency>
然后,我们可以在src/main/resouces中创建一个配置文件application.properties
#端口自己定义 不要和已有的项目冲突
server.port=8080
#上下文访问路径
server.servlet.context-path=/test
重新启动项目 在浏览器中输入 localhost:8080/test/index
这样一个简单的demo就完成了!!!
补充-------------------------------------------------------------------------
创建方法二:
步骤一:在 https://start.spring.io/ 中按下图操作
步骤二:将生成的文件解压 并导入eclipse,添加配置文件以及测试小例子 项目整体框架如下
pom.xml代码:(这个基本就是生成的例子中动过 如果需要其他的自己添加)
<?xml version="1.0" encoding="UTF-8"?>
<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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.20.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- springboot持久层框架 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- springboot内嵌式的数据库 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
创建数据库表的 schema.sql 文件:
drop table user if exists;/*如果有 user表就删除 然后下面重新创建*/
/* generated default as identity 这个是H2的语法 表示自增主键 */
/*下面为建表语句*/
create table user(
id bigint generated by default as identity,
username varchar(40),
name varchar(20),
age int(3),
balance decimal(10,2),
primary key(id)
);
添加表数据的data.sql文件:
insert into user(id,username, name, age, balance) values(1,'user1', '张三', 20, 100.00);
insert into user(id,username, name, age, balance) values(2,'user2', '李四', 20, 100.00);
insert into user(id,username, name, age, balance) values(3,'user3', '王五', 20, 100.00);
insert into user(id,username, name, age, balance) values(4,'user4', '马六', 20, 100.00);
配置文件application.yml
#springboot 一般支持 application.properties 作为配置文件 application.yml 比较有层次感
server:
port: 7900 #端口
spring:
jpa:
generate-ddl: false #指的是启动的时候要不要生成ddl语句
show-sql: true #是否打印sql
hibernate:
ddl-auto: none #表示启动时不做ddl语句的处理
datasource:
platform: h2 #数据源 H2 为springboot自带的数据库
#下面这两步有时候添加会报错 使用默认的就好
#schema: classpath:schema.sql #建表语句路径 可以省略不配置
#data: calsspath:data.sql #表数据路径 可以省略不配置
logging:
level:
root: INFO #根节点日志 级别
#下面的三行是配置日志 显示sql语句并打印参数
org.hibernate: INFO
#org.hibernate.type.descriptor.sql.BasicBinder: TRACE
#org.hibernate.type.descriptor.sql.BasicExtractor: TRACE
com.itmuch: DEBUG
实体类:
package com.example.demo.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
//下面这些注解是spring JPA 的注解
@Entity
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = -5482447848466004705L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column
private String username;
@Column
private String name;
@Column
private int age;
@Column
private BigDecimal balance;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public BigDecimal getBalance() {
return balance;
}
public void setBalance(BigDecimal balance) {
this.balance = balance;
}
}
dao层:
package com.example.demo.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.example.demo.entity.User;
//dao层
@Repository
public interface UserDao extends JpaRepository<User, Long>{
}
控制层controller:
package com.example.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.dao.UserDao;
import com.example.demo.entity.User;
@RestController
public class UserController {
//这个例子没有service层 自己加
@Autowired
private UserDao dao;
@GetMapping("/user/{id}")//GetMapping 是混合注解
public User findById (@PathVariable Long id){
return this.dao.findOne(id);
}
}
由于例子比较简答所以没有添加service层,如果有需要自己添加
步骤三:通过application.Java启动项目(注意://注意启动类一定要在包的最外层 否则扫描不到注解 默认扫描当前包以及子包的注解)
步骤四:通过浏览器访问 http://localhost:7900/user/2 出现下面的结果表示项目创建成功!