IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> springboot整合junitmybatis -> 正文阅读

[Java知识库]springboot整合junitmybatis

目录

spring boot概述

起步依赖?

?程序启动

配置文件application.yml?

多环境启动

配置文件分类

整合junit

整合mybatis


spring boot概述

SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来 简化 Spring 应用的 初始搭建 以及 开发过程
  • 自动配置。这个是用来解决 Spring 程序配置繁琐的问题
  • 起步依赖。这个是用来解决 Spring 程序依赖设置繁琐的问题
  • 辅助功能(内置服务器,...)。我们在启动 SpringBoot 程序时既没有使用本地的 tomcat 也没有使用 tomcat 插件,而是使用 SpringBoot 内置的服务器。

起步依赖?

springboot的起步依赖主要是一个父工程和一个springweb依赖,

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.5.0</version>
		<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
</dependency>

进入到父工程,发现又继承了一个父工程如下,该配置文件真正用于管理spring boot应用中所有的依赖版本,是spring boot的版本仲裁中心

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.5.0</version>
</parent>

再进入该父工程,发现配置结构如下,原来该工程已经包含了几百个依赖,并锁定了200多个版本属性,其中就包含springboot-starter-web,而springboot-starter-web又引入了 spring-web spring-webmvc 的依赖,这就是为什么我们的工程中没有依赖这两个包还能正常使用 springMVC 中的注解的原因,还有spring-boot-starter-tomcat,所以我们的工程才能正常启动

spring boot将所有的功能场景都抽取出来做成多个starter(启动器),只需要在项目中引入这些starter,相关场景的所有依赖都会导入进来,需要用到什么功能就导入什么场景的启动器

在使用 SpringBoot 换技术时只需要导入该技术的起步依赖即可?

?程序启动

每一个springboot程序都有一个引导类,该类是项目的入口,运行 main 方法就可以启动项目

@SpringBootApplication
public class Springboot09SsmApplication {

	public static void main(String[] args) {
		SpringApplication.run(Springboot09SsmApplication.class, args);
	}

}

配置文件application.yml?

SpringBoot 程序的配置文件名必须是 application 后缀名可以是yaml、yml、 properties
三种配置文件的优先级是:
application.properties > application.yml > application.yaml
# TODO 配置数据源相关信息,同层级左侧对齐,属性名与属性值之间使用冒号+空格作为分隔
server:
  port: 80

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db #?servierTimezone=UTC
    username: root
    password: 123456
logging:
  level:
    root: info
enterprise:
  name: itcast
  age: 16
  tel: 4006184000
  subject:
    - Java
    - 前端
    - 大数据

优点:

  • 容易阅读,yaml 类型的配置文件比 xml 类型的配置文件更容易阅读,结构更加清晰
  • 容易与脚本语言交互
  • 以数据为核心,重数据轻格式,yaml 更注重数据,而 xml 更注重格式

读取方式:

  1. ????????@Value("${一级属性名.二级属性名……}") ?
  2. ? ? ? ? @Autowired
? ? ? ? ? ? ? ?private Environment env ;
? ? ? ? ? ? ? ? env.getProperty(String name) ??
? ? ?3.? ? ??在实体类中加注解
? ? ? ? ? ? @Component
? ? ? ? ? ? @ConfigurationProperties ( prefix = "enterprise" )
? ? ? ? ? ?在controller中注入
? ? ? ? ? ?@Autowired
? ? ? ? ? ?private Enterprise enterprise ;
? ? ? ? ? ..........
? ? ? ? ? ?enterprise . getName ()
? ?

多环境启动

application.yml 中使用 --- 来分割不同的配置
#设置启用的环境
spring:
  profiles:
    active: dev

---
#开发
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 80
---
#生产
spring:
  profiles: pro
server:
  port: 81
---
#测试
spring:
  profiles: test
server:
  port: 82
---

也可以用命令行启动参数,即指定启用哪个环境配置,又临时指定端口,该方式优先级比配置文件高

java –jar springboot.jar –-server.port=88 –-spring.profiles.active=test

配置文件分类

配置文件放在不同位置的优先级是不同的

  • 1级:classpathapplication.yml(优先级低)
  • 2级:classpathconfig/application.yml
  • 3级:file application.yml
  • 4级:file config/application.yml (优先级高)

整合junit

spring整合junit需要使用 @RunWith 注解指定运行器,使用 @ContextConfiguration 注解来指定配置类或者配置文件

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class UserServiceTest {
    @Autowired
    private BookService bookService;

    @Test
    public void testSave(){
        bookService.save();
    }
}
? SpringBoot 整合 junit 特别简单,分为以下三步完成
  • 在测试类上添加 SpringBootTest 注解
  • 使用 @Autowired 注入要测试的资源
  • 定义测试方法进行测试
@SpringBootTest
class Springboot07TestApplicationTests {
    @Autowired
    private BookService bookService;

    @Test
    public void save() {
        bookService.save();
    }
}

整合mybatis

Spring 整合 Mybatis 需要定义很多配置类,包括JdbcConfig 配置类(定义数据源加载 properties 配置项: driver url username password),MybatisConfig 配置类( 定义 qlSessionFactoryBean
和映射配置 ),还要在springconfig导入
@Configuration
@ComponentScan("com.itheima")
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MyBatisConfig.class})
public class SpringConfig {
}

而spring boot只需在 application.yml 配置文件中配置如下内容,并在 Dao 接口上使用 @Mapper告诉 Mybatis 哪个是 dao 接口。?Mybatis 会扫描接口并创建接口的代码对象交给 Spring 管理

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource #配置使用Druid数据源
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db #?servierTimezone=UTC
    username: root
    password: 123456
@Mapper
public interface BookDao {
    @Select("select * from tbl_book where id = #{id}")
    public Book getById(Integer id);
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:12:25  更:2022-11-05 00:18:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/30 13:40:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码