Springboot之基本使用
Spring Boot
启动
- springboot项目不同于Servlet的Web项目,本质上是一个Java应用程序,不需要手动启动Tomcat,而是通过java类的主方法,因为这个类把Tomcat嵌入去了打包方式为jar或者war
配置文件
- 位于
src/main/resources/application.properties,也可在idea指定配置文件的文件名(Envirnment variables) - 支持多配置文件,可以切换不同配置文件
-
properties
#配置端口上下文 server.port=8888 server.context-path=/test #配置数据库链接参数 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ksea?characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver # 引入jsp,重定向 spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp
一些常用的注解
@SpringBootApplication:该注解表明这是一个Springboot应用
@RestControllerspring:MVC一个控制器注解,为@ResponseBody和@Controller的缩写
@Controller:处理http请求,返回的不是字符串而是根据application.properties 中的视图重定向
@RequestMapping:配置url映射,即访问什么路径时拦截起效
@AtuoWried:注入
热部署
- springboot修改后必须重启才能生效,应用了热部署后当任何类修改后马上通过JVM类加载的方式,不需要重启也可以看到修改后的效果
- 添加maven的一个依赖和一个插件
接着修改IDEA的设置才可以生效:
1-File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,选中打勾 “Build project automatically”
2-组合键:“Shift+Ctrl+Alt+/” ,选择 “Registry” ,选中打勾 “compiler.automake.allow.when.app.running”
-
依赖
<!--热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <!-- 这个需要为 true 热部署才有效 --> </dependency> -
插件
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin>
对于jsp的支持
-
添加相关maven的依赖
<!--jsp页面使用jstl标签--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--tomcat依赖,用于编译jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> -
编辑配置文件
ps:在src/main/resources 目录下增加 application.properties文件,用于视图重定向jsp文件的位置。内容为配置返回文件的路径以及类型
#重定向 spring.mvc.view.prefix: /WEB-INF/jsp/ spring.mvc.view.suffix: .jsp -
jsp文件存放于web文件夹时会报错,webapp正常
持久层支持(操作数据库)
JPA
特点:自动建表,内置sql语句,通过dao层调用即可
流程:配置pom添加相关依赖-配置文件中配置数据库-建立pojo实体类-建立dao层接口-建立控制器
注解:@Entity,@Table,@Column,@GenneratedValue
父类:JpaRepository
配置:配置文件中配置数据库,配置url,username,password,driver-class-name,开启自动生成表
-
pom配置
<!-- mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <!-- jpa--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> -
pojo类
-
添加注解@Entity表明为实体,@Table(name="")指定相关表
-
对于变量用@Column指定数据库中变量对应的列名称,设置列的属性(是否自增长等)
@Entity @Table(name = "category") public class Category { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private int id; @Column(name = "name") private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
- dao接口
-
继承JpaRepository
public interface CategoryDAO extends JpaRepository<Category,Integer>{}
- controller类
-
使用@Controller注解表明是一个控制器
-
通过@Autowired把DAO层注入
-
使用@RequestMapping("url")拦截映射url
-
通过相关Dao调用
@Controller public class CategoryController { @Autowired CategoryDAO categoryDAO; @RequestMapping("/listCategory") public String listCategory(Model model){ List<Category> categoryList = categoryDAO.findAll(); model.addAttribute("categoryList",categoryList); return "listCategory"; } }
Mybatis-注解
特点:自由编写sql语句,通过注解使用
流程:配置pom添加相关依赖-配置文件中配置数据库-建立pojo实体类-建立mapper接口-建立controller类
注解:@Mapper,@Select,@Insert,@Update,@Delete
- properties配置
-
配置文件中配置数据库,配置url,username,password,driver-class-name
#数据库配置 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ksea?characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver
- pom配置
<!-- mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
- pojo类
-
普通实体类,变量即可,无需注解
public class Category { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
- mapper接口
-
@Mapper接口表明
-
@Select("sql")注解用于方法上,通过controller调用该方法即可调用相关注解的sql
@Mapper public interface CategoryMapper { @Select("select * from category") List<Category> findAll(); }
- controllre类
-
注解dao层,通过dao层调用注解了的sql方法
@Controller public class CategoryController { @Autowired CategoryMapper categoryMapper; @RequestMapping("/listCategory") public String listCategory(Model m) throws Exception { List<Category> cs=categoryMapper.findAll(); m.addAttribute("cs", cs); return "listCategory"; } }
Mybatis-xml
特点:自由编写sql,结合xml
流程:配置pom添加相关依赖-pom中配置xml路径-配置文件中配置数据库-配置文件中配置数据库xml路径-建立pojo实体类-建立mapper接口-建立mapper对应的xml-建立controller类
注解:@Mapper
- 常见错误
- 报500,找不到mapper,未能在pom和properties中的文件中正确配置mapper.xml的路径
- properties
-
配置重定向
-
配置文件中配置数据库,配置url,username,password,driver-class-name
-
配置mybatis的xml路径
#重定向 spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp #数据库配置 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ksea?characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver #配置mybatis的xml路径 mybatis.mapper-locations=classpath:com/ksea/mapper/*.xml mybatis.type-aliases-package=com.ksea.pojo
- pom配置
-
这里也要配置一下xml路径,我也不懂 qaq
-
导入数据库依赖
#依赖 <!-- mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> #xml路径 <build> <!--xml路径配置--> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>
- pojo实体类
- mapper接口
- mapper.xml
-
namespace="",指定相关Mapper接口位置
-
id="",通过id和sql相关方法关联,resultType="",指定返回类型
<?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.ksea.mapper.CategoryMapper"> <select id="findAll" resultType="Category"> select * from category </select> </mapper>
- controller控制类
单元测试
特点:不需要全项目测试,单独测试某一功能
流程:pom中添加相关依赖-编写测试类
注解:@RunWith(SpringRunner.class),@SpringBootTest(classes = Application.class),@Test

浙公网安备 33010602011771号