1.springBoot是个基于服务编程(SOA)微服务框架,底层架构基于SpringMVC框架
2.使用微服务框架的好处
1.把一个大的项目 拆分成若干小模块,模块之间互相可以调用,减少代码冗余。
2.模块之间互不干扰,单独模块崩溃之后不影响其他模块使用 (大优势)
3.对请求用户进行分流,让不同需求的用户访问不同模块(项目,类似京东网站)
4.开发简单,使用纯注解模式,没有配置文件 (开发速度快,减少开发风险)
3.使用idea搭建springboot项目
1.首先选中File--New-project 选中Spring Initializr
2.点击next进行下一步操作,此操作必须在有网环境下运行,否则报错,进入下一步之后,选中需要使用的JDK和项目管理工具,项目名称不能使用英文大小写混合
3.设置好上述选项之后,点击next进入下一步,选中对应的springBoot版本以及需要使用的组件(jar包),这里我只搭建一个简单的SpeingBoot框架,所以我只需要点web,点击next进入下一步创建成功
4.springBoot框架使用
pom文件jar支持
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
//jar包依赖
<artifactId>spring-boot-starter-web</artifactId>
</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>
1.创建springBoot启动类 springBoot是通过main方法启动,springBoot项目默认集成Tomcat。
使用SpringBootApplication中的run方法 启动springboot项目,启动类如下图
SpringBootApplication类详情解释
/**
* SpringBoot项目启动类
* SpringBoot内部集成了tomcat
* 所以不需要外部tmocat支持就可以启动项目
*/
@SpringBootApplication //SpringBoot坏境注解,相当于Spring-MVC中web.xml的Spring监听
//扫描当前包及其自包下的所有注解,此启动类必须放在父级包目录中
//识别Spring中的注解,加载Spring中的运行环境
public class SpringbootdemoApplication {
//通过main方法启动
public static void main(String[] args) {
//通过SpringApplication的run方法启动SpringBoot项目
//参数为当前启动类的类名
//SpringApplication.run为固定方法,是不变的,如果自己生成SpringBootApplication类需要手写
SpringApplication.run(SpringbootdemoApplication.class, args);
}
}
启动类必须放在父级包目录中,否则,扫描不到,需要加一个属性scanBasePackages = "com.jk",相当于spring-common.xml
新建测试类测试SpringBoot框架是否搭建成功
@Controller
@RequestMapping("order")
public class OrderController {
@RequestMapping("test")
public void test(){
System.out.println("成功接收到请求!");
}
}
回到SpringBootApplication启动类启动内部tomcat
如出现下图,则表示tomcat启动成功,并无报错,8080为你的端口号
浏览器访问http://localhost:8080(我的端口号)/order/test(我的方法名) (不需要加后缀)
出现下图侧表示访问成功,之所以会报404是因为我测试类返回值为void并没有页面并不是访问失败。
控制台成功输出!
接下来做一个简单的查询,先不连接数据库
注入Service
@Autowired
private OrderService orderService;
这里注入可能会报错,需要手动设置一下,默认是error设置成Warining就不会报错了
Controller层
@RequestMapping("queryOrderList")
@ResponseBody
public List<Map<String,Object>> queryOrderList(){
return orderService.queryOrder();
}
Service层
List<Map<String,Object>> queryOrder ();
ServiceImpl层,注意别忘了@Service注解呀
@Override
public List<Map<String, Object>> queryOrder() {
List<Map<String, Object>> maps = new ArrayList<>();
HashMap<String, Object> map1 = new HashMap<>();
map1.put("orderInfo","家电类商品");
HashMap<String, Object> map2 = new HashMap<>();
map2.put("orderInfo","3C类商品");
maps.add(map1);
maps.add(map2);
return maps;
}
我们再来启动一下访问方法去页面看下效果
数据是不是展示了呢?
到此为止SpringBoot框架已经搭建成功,接下来连接自己的数据库,我连的是自己的MySql
1.在resources下的application.properties中配置数据连接信息,其中server.port是你的端口号,spring.datasource.url是你的数据库链接地址,serverTimezone为所在时区,这个是必填的否则数据会有问题。
#server.servlet.application-display-name= 设置访问项目名
server.port=8080
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/math?serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
2.pom文件中需要引入为连接数据库和Spring集成的jar包,注意mySql的jar包版本!!要符合自己的数据库版本,太高会启动报错!!<version>你的数据库版本</version>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.4</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
3.以配置mapper层扫描 在启动类上添加@MapperScan("com.jk.mapper")注解,扫描mapper层。
试一下是否可以连接成功
创建实体Bean
public class OrderBean {
private Integer orderId;
private String orderName;
private String orderPrice;
private String orderInfo;
public Integer getOrderId() {
return orderId;
}
public void setOrderId(Integer orderId) {
this.orderId = orderId;
}
public String getOrderName() {
return orderName;
}
public void setOrderName(String orderName) {
this.orderName = orderName;
}
public String getOrderPrice() {
return orderPrice;
}
public void setOrderPrice(String orderPrice) {
this.orderPrice = orderPrice;
}
public String getOrderInfo() {
return orderInfo;
}
public void setOrderInfo(String orderInfo) {
this.orderInfo = orderInfo;
}
@Override
public String toString() {
return "OrderBean{" +
"orderId=" + orderId +
", orderName='" + orderName + '\'' +
", orderPrice='" + orderPrice + '\'' +
", orderInfo='" + orderInfo + '\'' +
'}';
}
}
Controllrt层创建查询方法
/**
* 查询
*/
@RequestMapping("findOrderList")
@ResponseBody
public List<OrderBean> findOrderList(){
return orderService.findOrderList();
}
Service层
List<OrderBean> findOrderList();
ServiceImpl层
@Override
public List<OrderBean> findOrderList() {
return orderMapper.findOrderList();
}
Mapper层
@Select("select * from t_order")
List<OrderBean> findOrderList();
启动项目成功
如果启动报错请注意你的数据库版本号!以及数据库jar包和spring.datasource.driverClassName连接方试,如果版本太高,改成com.mysql.cj.jdbc.Driver试试。
去网站看下展示成功
我的MySql数据如下
接下来springBoot集成thymeleaf
resources文件包下有两个子包,一个叫static是放自己的js文件等,一个叫templates是放你的html页面(模板)。
thymeleaf是springBoot推荐的静态模板。
1.导入thymeleaf的相关jar包
<!--thymeleaf所需要的jar包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2.templates下创建html模板,html标签中引入xmlns
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<span>成功跳转到网页</span>
</body>
</html>
3.在核心配置文件application中配置thymeleaf的相关配置
--设置当前页面为HTML5格式
spring.thymeleaf.mode=HTML5
--设置页面编码为UTF-8
spring.thymeleaf.encoding=UTF-8
--设置转换格式为HTML格式
spring.thymeleaf.servlet.content-type=text/html
--是否开启缓存 开发状态下设置为false 上线状态下设置为true
spring.thymeleaf.cache=false
#设置页面编码为UTF-8
spring.thymeleaf.encoding=UTF-8
#设置转换格式为HTML格式
spring.thymeleaf.servlet.content-type=text/html
4.Controller写一个方法看看能不能成功跳转页面
/**
* 跳转页面
*/
@RequestMapping("toApp")
public String toAppInfo(){
return "appInfo";
}
跳转成功了
springBoot集成thymeleaf完成!