SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。
Spring程序缺点:配置繁琐,依赖设置繁琐。SpringBoot程序优点:自动装配,起步依赖(简化依赖配置),赋值功能(内置服务器)。
版本管理:以后不需要管版本,只需要告诉是SpringBoot几,就自动将所有最佳组合的版本配合在一起做好。
依赖管理:所有的依赖SpringBoot都已经自动装配好。
起步依赖

starter:SpringBoot中创建项目名称,定义了当前项目使用的所有项目坐标,以达到减少依赖配置的目的。
parent:所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的。
Springboot简化了SpringMVC的开发:

核心功能是靠下面的继承来实现
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>3.1.3</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
第1步:新建Maven项目(或项目),选择Spring初始化,并配置模块相关信息
注意选择Spring Initializr;Package name后面的后缀要删掉,和Group保持一致;

第2步:选择当前模块需要使用的技术集,勾选Spring Web

第3步:开发控制器类,在java下面创建controller然后新建类BookController,在里面编写代码如下
- @RestController
- @RequestMapping("/books")
- public class BookController {
- @GetMapping("/{id}")
- public String getById(@PathVariable Integer id){
- System.out.println("id ==> "+id);
- return "hello , spring boot !";
- }
- }
第4步:然后右键下面的文件运行,启动:

Maven中点击Package会将项目打成一个.jar包:

右键.jar包点击Open in 点击Explorer:

在搜索栏中输入cmd,然后输入java -jar,输入一个s然后点击Tab键就可以自动补全,然后点击运行即可:

依赖的是下面的插件:

想改变端口号:
1. 在application.properties里写入:
server.port=80
2. 在resources下创建application.yml【主要书写方式】里写入下面代码,注意port:后面有一个空格:
- server:
- port: 80
3. 在application.yaml里写入如下代码:
- server:
- port: 80
自动提示功能消失解决方案:

生效顺序:properties > yml > yaml
YAML(YAML Ain't Marku Language)是一种数据序列化格式。
优点:容易阅读。容易与脚本语言交互。以数据为核心,重数据轻格式。
YAML文件拓展名:.yml(主流)、.yaml
yaml语法规则:
层级关系用冒号结束;以缩进表示层级关系(类似python);在属性后面要添空格;大小写敏感

方法1:使用@Value读取单个数据

方法2:全部封装到nvironment对象

方法3:自定义对象封装指定数据


在.yml和.yaml中按照如下方式书写,可以切换不同的环境,输入profile选第1个就行,输入port选第1个填入端口后即可:




在properties文件中的书写按照如下方式:

![]()


打包之前先执行clean
在后面加上:--spring.profiles.active=环境名 ,可以使用不同的环境启动。

如果想更改启动.jar包的端口也是可以的,只需要在后面加上 : --server.port=端口号。
![]()
还可以进行累加,例如下面采用88端口以test的环境启动:


以maven为主,boot为辅,以maven控制版本,然后让boot加载maven的版本。
假如maven是pro生效,SpringBoot是dev生效,那么最终是用dev:


首先要在Maven中设置多环境,boot中要读取引用Maven中设置的多环境:


在打包之前需要导入下面的插件,需要将占位符解析,将
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>3.2.0</version>
- <configuration>
- <encoding>UTF-8</encoding>
- <useDefaultDelimiters>true</useDefaultDelimiters>
- </configuration>
- </plugin>
IDEA的resources下的config里的配置文件优先级是第3级:

在jar包目录下写一个配置文件,可以覆盖IDEA里的配置文件,优先级是第2级:

还可以在jar包目录下写一个config配置文件,是第1级:


第1步:新建项目。新建全新项目,注意更改依赖:

第2步:连接数据库。更改.properties的配置文件文件后缀为.yml,书写jdbc配置:
- spring:
- datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/ssm_db
- username: root
- password: 111111
第3步:设置实体类。创建domain-Book,在里面写入实体类:

第4步:创建接口。创建dao-BookDao数据层接口,写SQL语句
- @Mapper
- public interface BookDao {
- @Select("select * from tb_brand where id = #{id}")
- public Book getById(Integer id) ;
- }
— — — — — — 知识加油站 — — — — — —
@Mapper注解用于标记一个接口作为MyBatis的Mapper接口。它告诉MyBatis框架将该接口识别为一个Mapper,并自动生成实现该接口的代理对象。当使用@Mapper注解标记接口后,MyBatis将会自动为该接口生成实现类,它会根据接口方法上的注解来动态构建相应的SQL语句,并执行数据库操作。
@ContextConfiguration注解用于指定Spring应用程序上下文的配置信息,以加载和初始化Spring容器。classes属性可以指定一个或多个配置类,用于加载Spring容器中的bean。
— — — — — — — — — — — — — — — —
5. 测试。在测试类中编写测试方法:
- @ContextConfiguration(classes = SsmMybatisApplication.class)
- @SpringBootTest
- class SsmMybatisApplicationTests {
- @Autowired
- private BookDao bookDao;
- @Test
- void contextLoads() {
- Book byId = bookDao.getById(1);
- System.out.println(byId);
- }
- }
6. 可以指定数据源,导入依赖,然后再.yml文件中指定type
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.1.16</version>
- </dependency>
![]()
在dao — BookDao接口中添加如下方法:
- @Insert("insert into tb_brand(brand_name,company_name,ordered,description,status)"
- +"values(#{brand_name},#{company_name},#{ordered},#{description},#{status})")
- public void add(Brand book);
注意:等号右边的#{ID}只是一个占位符,会根据传入的ID值,被替换为具体的值,因此不一定要与实体类中的id取一样的变量名。等号左边的id是数据库中的字段id,因此名称一定要匹配。
- @Delete("delete from tb_brand where id = #{ID}")
- public void delete(int ID);
SQL语句书写复杂,不适合用注解,因此要用XML配置文件,配置方法如下:
第1步:在 java — com — itheima — dao的BookDao接口里写入如下方法:
public void update(Brand brand);
第2步:在resources下创建mybatis-config.xml文件。在resources下创建mapper包,创建BookMapper.xml。

第3步:主配置文件(mybatis-config.xml)模板如下(setting中是开启驼峰命名):
- "1.0" encoding="UTF-8" ?>
- configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
- <settings>
- <setting name="mapUnderscoreToCamelCase" value="true"/>
- settings>
- configuration>
第4步:接口映射文件(Mapper.xml 文件包含了SQL语句)模板如下:
注意要修改如下几个地方:1. namespace要更改为接口的全路径。2.
- <?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.itheima.dao.BookDao">
- <!--查询-->
- <update id="update" >
- update tb_brand
- <set>
- <if test="brand_name != null and brand_name !='' ">
- brand_name = #{brand_name},
- </if>
- <if test="company_name != null and company_name !='' ">
- company_name = #{company_name},
- </if>
- <if test="ordered != null ">
- ordered = #{ordered},
- </if>
- <if test="description != null and description !='' ">
- description = #{description},
- </if>
- <if test="status != null ">
- status = #{status},
- </if>
- </set>
- where id = #{id};
- </update>
- </mapper>
注意2个点:第一个update tb_brand后面是用
第5步:加载配置文件。在.yml文件中指定指定mybatis全局配置文件和接口映射文件位置(注意这里的相对路径从.yml文件所在的resources下开始):
- mybatis:
- config-location: classpath:mybatis-config.xml
- mapper-locations: classpath:mapper/*.xml
config-location 用于指定MyBatis的全局配置文件的路径。mapper-locations 用于指定Mapper XML文件的路径。
第6步:编写测试方法:
- @ContextConfiguration(classes = SsmMybatisApplication.class)
- @SpringBootTest
- class SsmMybatisApplicationTests {
- @Autowired
- private BookDao bookDao;
- @Test
- void contextLoads() {
- String companyName = "彭德科技有限公司";
- int id = 1;
-
- Brand brand = new Brand();
- brand.setCompany_name(companyName);
- brand.setId(id);
-
- bookDao.update(brand);
- }
- }
- @Select("select * from tb_brand where id=#{id}")
- public Brand select(int id);
首先要搞清楚什么是要写的,什么是不要写的。大家写得一样的是不用写的。
首先在java下面创建BookService接口:
- public interface BookService {
- public void save();
- }
然后在service下面创建impl包,然后再impl包下面创建BookServiceImpl类,写入如下代码:
- @Service
- public class BookServiceImpl implements BookService {
- @Override
- public void save() {
- System.out.println("book service is running ...");
- }
- }
在测试类里写入如下代码:

只需要加入@Autowired注解,把要测试的资源注入进去,然后直接使用即可:
- @SpringBootTest
- class Demo4ApplicationTests {
- @Autowired
- private BookService bookService;
- @Test
- void contextLoads() {
- bookService.save();
- }
- }
在java类下面的这个类相当于配置类:
’
会自动加载同层目录下的文件,如果不在同层目录,就需要自己指定:


1. 新建一个项目,同上:
2. 导入druid坐标,编写配置类.yml格式,同上:

3. config包可以删掉,dao包中的BookDao要加一个@Mapper注解,其余不变:

4. 编写测试类;复制静态页面放在static页面下:


5. 启动java下的启动类:

即可正常展示:

待写...
1. springboot优点,技术选型原因,为什么不用其他框架?为什么要使用SpringBoot做开发?与传统的开发有什么不一样的?
2. spring boot中的控制反转?
3. SpringBoot的启动类上要加什么注解?这个注解的原理?SpringBoot的启动原理?
4. Spring Boot的自动装配流程?SpringBoot自动配置原理?
5. SpringbootApplication是如何实现依赖注入的?
6. springboot框架url映射过程?
7. 聊聊Springboot与SpringCloud的区别?
8. 在Spring boot的一个请求中,如何实现并发?
9. Springboot如何开发一个http接口?
10. return model过程?
1. 如果端口号没能更改成功,要检查启动的是否是正确的项目:

2. 如果因为中文导致无法打包或者乱码的按下面方式处理:

3. 无法注入依赖 / 无法访问配置的Bean
在Test类上加上:@ContextConfiguration(classes = 配置类.class)