起步依赖本质上就是一个pom,(项目对象模型),其中包含了某个框架/功能运行所需的基础依赖信息,当我们需要某个框架/功能时加入该框架/功能的依赖即可
- 自动配置
Spring Boot会在启动时完成对各个框架的自动配置,考虑了众多因素,最终决定Spring配置应该用哪个,不该用哪个, 该过程是Spring自动完成的;
-
内置tomcat 或jetty等servlet容器
-
没有代码生成,不需要XML配置
-
尽可能自动配置Spring容器中的bean;
入门程序
========
案例
-
创建基础的maven过程
-
在pom中继承SpringBoot的starter,这决定了该工程是一个Spring boot工程
-
注意这不是依赖,而是继承关系,就像一个class一样,通过继承拥有父类的功能
org.springframework.boot
spring-boot-starter-parent
2.2.4.RELEASE
- 在pom中添加web的starter依赖,告诉maven,web应用需要用到的依赖有哪些,只需要加进来就可以,Spring boot 将会自动完成响应的配置
org.springframework.boot
spring-boot-starter-web
- 编写Spring boot引导类,为spring boot提供一个启动入口
//引导类不允许放在根目录下
@SpringBootApplication
public class Application {
public static void main(String[] args) {
//启动Spring boot 需要指定引导类
SpringApplication.run(Application.class);
}
}
- 创建一个用于测试的controller
@RestController
public class HelloController {
@RequestMapping(“/hello/{name}”)
public String helloTest(@PathVariable String name){
return "hello spring : "+name;
}
}
此时工程目录如下:
- 运行主函数,启动应用
- 浏览器访问
http://localhost:8080/hello/aaa
,tomcat默认运行在808端口,可通过控制台查看
注意:引导类不能放在根目录下;
通过maven插件来运行
maven可以帮助我们在运行前检查依赖关系
- 添加插件
org.springframework.boot
spring-boot-maven-plugin
- maven命令
spring-boot:run
整合mybatis
=============
添加了starter-web起步依赖后,工程就完成了Spring 和SpringMVC相关依赖和整合配置,我们已经可以处理客户端的请求并返回响应了,但是我们的数据是存储在数据库的,需要整合mybatis到项目中
添加starter和JDBC驱动
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.1
mysql
mysql-connector-java
准备数据
CREATE TABLE user
(
id
int(11) NOT NULL AUTO_INCREMENT,
username
char(10) DEFAULT NULL,
password
char(12) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
INSERT INTO user
VALUES (1,‘admin’,‘123321’),(2,‘jerry’,‘123’),(3,‘22’,‘222’);
创建实体Bean
public class User {
private Integer id;
private String username;
private String password;
set/get
}
创建Mapper接口
package com.yyh.mapper;
import com.yyh.pojo.User;
import java.util.List;
@Mapper //mybatis 能识别带有该注解的mapper
public interface UserMapper {
public List selectAllUser();
}
创建Mapper映射文件
<?xml version="1.0" encoding="utf-8" ?>select * from user
测试控制器
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping(“/user/list”)
@ResponseBody
public List getAllUsers(){
return userMapper.selectAllUser();
}
}
创建配置文件
在resources下创建名称为application.properties的文件,内容如下,另外spring还支持yml格式的配置文件
#DB Configuration:
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boot?
serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=admin
#spring集成Mybatis环境
#pojo别名扫描包 mybatis.type-aliases-package=com.yyh.pojo
指定扫描mapper所在的包
若没有使用@Mapper注解需要在启动类中添加扫描包信息
@SpringBootApplication
@MapperScan(“com.yyh.mapper”)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
maven编译设置
默认情况下,maven在打包时会将java目下的*.java
以及resource下的配置文件诸如(*.xml,*.properties
)等编译到target中,这个两个文件夹都属于classpath,一些人为了方便查找可能会将mapper文件和接口文件一起放在java目录下,但是maven并不会将java目录下的xml进行编译的,这时可以在pom中指定要编译的目录信息
src/main/java
**/*.properties
**/*.xml
false
src/main/resources
**/.
false
使用thymeleaf模板引擎
===================
在这之前我们一直在使用jsp来作为视图层,但是jsp必须依赖servlet容器,浏览器无法直接渲染jsp文件每次开发调试想要看到最新的效果都必须重新编译jsp,所以Spring boot 并不推荐我们使用jsp,视图层可以使用模板引擎,目前主流的有thymeleaf,和freemaker,官方推荐thymeleaf;
Spring boot 提供了thymeleaf的默认配置,所以在spring boot 中使用thymeleaf非常方便,Spring boot 还设置了thymeleaf的默认视图解析器,可以像操作jsp一样来操作Thymeleaf。Controller层几乎没有任何区别,就是在模板语法上有区别。
需要强调的是:模板依然是在后端完成渲染(前后端不分离),运行流程和jsp是一样的,关于thymeleaf详细用法不是本章的重点,参见官网。
添加Thymeleaf的依赖
org.springframework.boot
spring-boot-starter-thymeleaf
编写Thymeleaf模板
注意:模板必须放到src/main/resources/templates目录下。
Service
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper mapper;
public List getAall(){
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/42274963fa738bc09d9899f8c72c61e6.jpeg)
最后
这份清华大牛整理的进大厂必备的redis视频、面试题和技术文档
祝大家早日进入大厂,拿到满意的薪资和职级~~~加油!!
感谢大家的支持!!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
569935)]
[外链图片转存中…(img-UYYop6PX-1713296569935)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/42274963fa738bc09d9899f8c72c61e6.jpeg)
最后
这份清华大牛整理的进大厂必备的redis视频、面试题和技术文档
祝大家早日进入大厂,拿到满意的薪资和职级~~~加油!!
感谢大家的支持!!
[外链图片转存中…(img-7AY0xNsb-1713296569936)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!