目录
spring MVC结合Thymeleaf在页面上实现查询操作
application.properties和application.yml
Springboot是什么?
项目搭建的脚手架
分步骤集成jar包,实现基础功能
说明:所有集成的这些jar包都在pom文件中
1,整合连接池hikariCP
介绍:HikariCP 是一个高性能的 JDBC 连接池组件,可以避免连接频繁建立、关闭的开销,实现数据库连接复用; 导入方式:创建spring boot项目,集成如截图
配置application.properties文件
spring.datasource.url=jdbc:mysql://ip地址/你的数据库名?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
测试类测试
@Autowired它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配
pom文件中的代码:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
2,整合mybatis
介绍:MyBatis 是一款优秀的持久层框架,底层基于JDBC实现与数据库的交互。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 导入方式:创建spring boot项目,集成如截图
mybatis中常用注解
@Mapper:用于描述一个数据层的接口,系统底层会为该类创建实现类,并且把实现类的对象传递给Spring框架去管理
@Autowired:它可以对类成员变量、方法及构造函数进行标注,完成自动装配 使用方式一(注解方式):
- 创建接口类,并用@Mapper描述该类,如图:
- 创建Data数据类
- 测试类测试
- 运行结果
使用方式二(映射方式):
这里链接我的另一篇博客,很全MyBatis框架基础在eclipse中使用的最全教程_小小苏的小小苏-CSDN博客
配置application.properties文件
#mybatis
mybatis.mapper-locations=classpath:/mapper*/*.xml此时依赖如下
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
3,整合spring mvc
说白了就是一种架构模式,这个模式是把系统分成三个部分(模型model,视图view,控制器controller)
1,导入方式:添加web依赖(会同时在项目中嵌入一个tomcat服务器),集成如截图(这里我们把Thymeleaf也选中,它是一个第三方html解析引擎)
配置application.properties文件
#spring-thymeleaf
spring.thymeleaf.prefix=classpath:/templates/pages/
spring.thymeleaf.suffix=.html2,resources/templates/pages/目录下在创建goods.html,然后controller类
3,在浏览器打开http://localhost:8080/goods/doGoodsUI就可以查看了
spring MVC结合Thymeleaf在页面上实现查询操作
查询数据
我们在controller类中
@Controller @RequestMapping("/goods/") public class GoodsController { @Autowired public GoodsDao goodsDao; @RequestMapping("doGoodsUI") public String selectAllGoods(Model model) { List<RoleData>list=goodsDao.findAllData(); model.addAttribute("list", list); return "goods"; } }在good.html文件中接收
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>数据呈现</h1> <table> <thead> <tr> <th>名称</th> </tr> </thead> <!-- 以下是thymeleaf定义 --> <tbody> <tr th:each="good:${list}"> <td th:text=${good.name}></td> </tr> </tbody> </table> </body> </html>结果展示
Lombok热部署
集成方式同上,热部署就是当我们修改文件之后,会自动帮我们启动服务器
在命令行中使用java -jar 运行lombok.jar,安装插件。
@Accessors(chain = true),添加这个属性可以链式调用
user.setAge(30).setId(1).setName("hhh").setSex("1");
Spring boot 主启动类分析
当我们的spring boot项目启动时,是如何加载我们pom文件中的jar包的呢?
当我们的类运行main方法的时候,它会自动扫描@SpringBootApplication注解,点开这个注解查看源码,
@Target(ElementType.TYPE) //表示使用的对象,这里是在类中使用
@Retention(RetentionPolicy.RUNTIME) //表示是在什么时候有效
@Documented
@Inherited上面这四个注解被称为元注解(修饰注解的注解)
@ComponentScan 表示要加载哪些信息
excludeFilters 表示加载的时候,要过滤掉的配置信息
@SpringBootConfiguration
关于这个注解,我们再次点进它的源码
被@Configuration修饰,说明这个类是配置类,由此说明,被@SpringBootConfiguration修饰的类就是配置类。
@EnableAutoConfiguration 自动化配置
点进源码
@AutoConfigurationPackage 自动的配置文件的扫描,只要主启动类启动,就会加载主启动类之后的配置,所以,我们所有的java文件都要写在application所在包目录下或application所在包的子包目录下,写到外面是加载不到的
@Import(AutoConfigurationImportSelector.class) 自动化的配置选择器,pom文件只是把我们的jar包引入到项目中,通过这个类加载器实现自动化配置,实现开箱即用
application.properties和application.yml
application.properties
spring boot默认生成的配置文件,数据结果是(key=value)结构,最好不要有中文,key=value之间最好不要有空格,key不可重复,如上图
application.yml
把properties改成yml即可,并且默认支持中文,区分大小写,层级缩进,key value之间有空格分隔,这里举个例子
配置生产环境和开发环境
通过---三个横线来区分
![]()
那系统怎么区分哪个是生产环境,哪个是测试环境呢,需要用
spring:
profiles:来区分,如图:
那么进入系统,环境默认是哪个呢,需要通过设定默认环境:
spring:
profiles:
active:
- prod
---
这样用---就分割成了三部分
如果选择prod环境,运行程序
如果选择了dev环境,运行
常用注解总结
@Component
当组件不好归类的时候,我们可以使用这个注解进行标注类,标识为一个Bean
@Scope(value = "")
value = "singleton"或 value = "prototype"
什么都不写或者value = "singleton",表示是单例模式,全局只有一个实例,spring负责创建和销毁
value = "prototype",表示是原型模式,每次获取都会有一个新的实例,spring只会负责创建,不会负责销毁
@Lazy()
延迟加载,默认为true,value = true则按需加载,false启动项目就会加载,和@Scope(value = "singleton")结合使用
需要注意的是,@Scope(value = "prototype")的时候,就一定是延迟加载,此时@Lazy()不起作用
@PostConstruct
生命周期开始方法,对象创建之后执行,用于初始化一些资源
@PreDestroy
生命周期销毁方法,对象销毁前执行,用于释放一些资源
@Autowired
对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作
@Qualifier("")
配合@Autowired一起使用,当多个类继承一个接口的时候,此注解表示当前声明的是哪个
本文详细介绍了Spring Boot项目中如何集成HikariCP连接池、MyBatis以及Spring MVC,包括配置文件设置、注解使用以及Thymeleaf模板引擎的应用。此外,还涉及了Lombok的热部署和Spring Boot主启动类的分析,提供了不同环境配置的示例,帮助读者理解Spring Boot的基础架构和工作原理。




















3860

被折叠的 条评论
为什么被折叠?



