各位看官老婆大家好,这篇介绍使用IDEA创建spring boot项目的过程和项目的特点~
一.新建项目
①在New Project 中选择Spring Initializr(弹簧初始化程序)
②JDK版本建议选择1.8,待会儿要和下面的一步保持一致
③初始化服务的URL,选择default那个就行
④next
⑤group自己填咯
⑥artifact项目名字自己起咯
⑦Java Version选择8,承接上一步的1.8
⑧next
⑨左侧选择web,在中间的web前打勾
⑩next
这里就是项目的命名和指定项目路径,你问我为啥又命名一次,我也想知道
(~ ̄ ̄)~
接着finish创建完成
我们来看看这香气逼人的新项目
SpringbootApplication: 一个带有 main() 方法的类,用于启动应用程序
SpringbootApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文
application.properties:一个空的 properties 文件,可以根据需要添加配置属性
pom.xml: Maven 构建说明文件
二.新建HelloController
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @RequestMapping("/hello") public String hello() { return "Hello Spring Boot!"; } } //@RestController 注解: 该注解是 @Controller 和 @ResponseBody 注解的合体版
三.启动springboot
在DemoApplicatin中右键点击Run,由于springboot自带Tomcat,所以无需手动配置;也可以点击右上角的绿色播放按钮来启动。
控制台输出是这样的,花花绿绿的还有spring的logo。
浏览器地址栏输入localhost:8080/hello,显示出欢迎界面,访问成功。
*springboot其他启动方式(番外):
1.侧边栏中的run选项
2.侧边栏中的package选项
生成jar包后,cmd中运行jar -jar 项目名.jar,运行后便可浏览器访问localhost:8080/hello
四.Spring Boot项目解析
1.pom.xml
较以往不同的是,springboot的pom文件多出了<parent>标签,该标签配置了springboot的父级依赖。有了这个,当前的项目才是 Spring Boot 项目,spring-boot-starter-parent 是一个特殊的 starter ,它用来提供相关的 Maven 默认依赖,使用它之后,常用的包依赖就可以省去 version 标签。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
2.应用入口类
Spring Boot 项目通常有一个名为 *Application 的入口类,入口类里有一个 main 方法, 这个 main 方法其实就是一个标准的 Javay 应用的入口方法。
@SpringBootApplication 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration、@EnableAutoConfiguration、@ComponentScan; 若不是用 @SpringBootApplication 注解也可以使用这三个注解代替。
其中,@EnableAutoConfiguration 让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如,添加了 spring-boot-starter-web 依赖,会自动添加 Tomcat 和 Spring MVC 的依赖,那么 Spring Boot 会对 Tomcat 和 Spring MVC 进行自动配置。
Spring Boot 还会自动扫描 @SpringBootApplication 所在类的同级包以及下级包里的 Bean ,所以入口类建议就配置在 grounpID + arctifactID 组合的包名下
3.Spring Boot 的配置文件(这个是重点,赶紧用本本记下来~)
springboot使用的是全局配置文件,名为application.properties。Spring Boot 不仅支持常规的 properties 配置文件,还支持 yaml 语言的配置文件。yaml 是以数据为中心的语言,在配置数据的时候具有面向对象的特征。
这是application.properties的写法,类似于Java中的方法调用
server.port=8989 server.servlet.context-path=/hello
这是application.yml的写法,树状结构,最后一个key的值之前要加一个空格
server: port: 8989 server: servlet: context-path: /hello
两种配置文件只需更改后缀名即可使用,不过不要忘记更改写法。
4.Spring Boot 热部署
当发现任何类发生了改变,就会通过 JVM 类加载的方式,加载最新的类到虚拟机中,这样就不需要重新启动也能看到修改后的效果了。
往 pom.xml 中添加一个依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <!-- 这个需要为 true 热部署才有效 --> </dependency>
重新启动 Spring Boot ,然后修改任意代码,就能观察到控制台的自动重启现象。
5.Spring Boot 使用
1)集成 MyBatis
修改 pom.xml 增加对 MySql和 MyBatis 的支持
<!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency>
2)新增数据库链接参数
3)创建 Student 实体类和 StudentMapper 映射类
新建一个【pojo】包,然后在其下创建一个 Student 类
public class Student { private Integer id; private Integer student_id; private String name; private Integer age; private String sex; private Date birthday; /* getter and setter */ }
新建一个【mapper】包,然后在其下创建一个 StudentMapper 映射类:
@Mapper public interface StudentMapper { @Select("SELECT * FROM student") List<Student> findAll(); }
4)编写 StudentController
@Controller public class StudentController { @Autowired StudentMapper studentMapper; @RequestMapping("/listStudent") public String listStudent(Model model) { List<Student> students = studentMapper.findAll(); model.addAttribute("students", students); return "listStudent"; } }
5)编写 listStudent.jsp 文件
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <table align='center' border='1' cellspacing='0'> <tr> <td>id</td> <td>name</td> </tr> <c:forEach items="${students}" var="s" varStatus="st"> <tr> <td>${s.id}</td> <td>${s.name}</td> </tr> </c:forEach> </table>
6)重启服务器运行
完毕
感谢@不能游的鱼指出本文的错误(@Mapperpublic其实是public没有换行),我在此表示感谢~附上spring boot在实际项目中的结构。
以上就是本篇带给大家的springboot项目创建和解析的相关知识,感谢大家的阅读~!
热门评论
编译jar包那块的命令应该是java -jar吧
那个就是mapper。省去了扫描mapper接口的配置。public是下面接口的权限修饰符。
也找不到Mapperpublic注解