1.创建new project–Spring Initializr
2.命名
3.勾选需要的,其他的依赖就不选了,创建后也可以自己添加 直接next finish
4.如果前面没有修改工程名称,可以在这一界面更改,然后点击finish。
项目开始生成,界面右下角回弹出一个小方框,点击Enable Autop-Import ,idea 会自动下载jar包,时间比较长 (5分钟左右)
5、等待片刻后,项目格式如下图。
6.生成的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 https://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>2.4.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.nimi.study</groupId>
<artifactId>springboottest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboottest</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</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>
- 创建application.properties文件
方法1:配置文件中用spring.然后快捷键稍微过一眼配置项,这是官网列出来的常用应用属性配置:官网常用应用属性配置。
#端口
server.port=8080
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nmtest?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
#使用mysql
spring.jpa.database = mysql
#是否显示sql语句
spring.jpa.show-sql=true
#mybatis配置 mybatis.config-location=classpath:mybatis-config.xml // 配置文件位置
mybatis.typeAliasesPackage=com.nimi.study.model
mybatis.mapper-locations=classpath:/mapper/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
#页面热加载
spring.thymeleaf.cache=false
方法2:自定义配置项,比如下面
#1.项目启动的端口
server.port=8080
#2.数据库连接参数
#2.1jdbc驱动,示数据库厂商决定,这是mysql的驱动
jdbc.driver=com.mysql.cj.jdbc.Driver
#2.2数据库连接url,包括ip(127.0.0.1)、端口(3306)、数据库名(testdb)
jdbc.url=jdbc:mysql://127.0.0.1:3306/nmtest?useUnicode=true&characterEncoding=utf-8&useSSL=false
#2.3数据库账号名
jdbc.username=root
#2.4数据库密码
jdbc.password=123456
#3.Mybatis配置
#3.1 mybatis配置文件所在路径
mybatis_config_file=mybatis-config.xml
#3.2 mapper文件所在路径,这样写可匹配mapper目录下的所有mapper,包括其子目录下的
mapper_path=/mapper/**/**.xml
#3.3 entity所在包
model_package=com.nimi.study.model
那么如何读取配置呢?两种方式分别用到@Value和@ConfigurationProperties这两个注解。如https://blog.csdn.net/steven_zhulin/article/details/90726347
8.创建类
TestController 类
package com.nimi.study.controller;
import com.nimi.study.model.TestEntity;
import com.nimi.study.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@ResController
@RequestMapping("/springbootdemo")
public class TestController {
@Autowired
private TestService testService ;
@RequestMapping(value = "/get/{id}",method = RequestMethod.GET)
public TestEntity test(@PathVariable Integer id){
System.out.println("id:" + id);
return testService.getById(id);
}
}
TestDao 类
package com.nimi.study.dao;
import com.nimi.study.model.TestEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TestDao {
TestEntity getById(Integer id);
}
TestEntity 类
package com.nimi.study.model;
public class TestEntity {
protected Integer id;
protected String magicId;
protected String firstName;
protected String lastName;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getMagicId() {
return magicId;
}
public void setMagicId(String magicId) {
this.magicId = magicId;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
TestService 类
package com.nimi.study.service;
import com.nimi.study.dao.TestDao;
import com.nimi.study.model.TestEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class TestService {
@Autowired
private TestDao testDao ;
public TestEntity getById(Integer id){
return testDao.getById(id);
}
}
TestMapper.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.nimi.study.dao.TestDao">
<!-- 根据主键查询-->
<select id="getById" resultType="com.nimi.study.model.TestEntity" parameterType="java.lang.Integer" >
select *
from test
where id = #{id}
</select>
</mapper>
9.maven install会报错
解决:
9.启动
a.启动类启动,注意这个要在controller同级
b.maven启动
10.访问地址成功
11.接下来,试着跳转到页面中,官方说springboot不建议使用jsp页面,所以需要自己手工创建。
首先创建webapp目录,在里面放页面,其实可以把页面放在static和templates中,我只是习惯放在webapp下
步骤1:点击右边的“-”,这是Spring boot项目,不需要web.xml文件,可加可不加
步骤2:选中原路径,鼠标左边双击,目录选择为上面创建的webapp文件,这一步多说一下,这一步是指向jsp文件的根目录,将webapp设置为web资源文件夹后,你点击webapp文件夹右键创建的时候才会在上面出现jsp的创建选项。
步骤3:点击右下键的Apply就可以
创建完后,会多了一个WEB-INF文件夹,可以删掉不影响
在application.properties中引入jsp,如果controller跳转jsp,在/WEB-INF/views/下找
#引入jsp/html
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
创建jsp页面
<%--
Created by IntelliJ IDEA.
User: nimi
Date: 2021/3/15
Time: 16:44
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
111111111111
</body>
</html>
在pom.xml中加入依赖JAR包
<!--jsp页面使用jstl标签-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--用于编译jsp-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<scope>provided</scope>-->
</dependency>
创建类方法
@RequestMapping(value = "/toindex")
public String index(){
return "index";
}
启动后,访问http://127.0.0.1:8081/springboottest/toindex返回的是index,是字符串,不是页面
解决:把ResController改成Controller,因为ResController返回的是字符串
重启下继续访问,返回的是页面内容,那就是跳转到页面了
我这边2种启动方式都可以,原先maven启动可以,但是启动项启动一直报错404,后面发现是maven版本高于IDEA,导致没有及时更新pom文件,一直没有加载成功包