目錄
Spring Boot starter入門
3.設定application.yml檔案
 5.設定Registry
springBoot整合JSP
SpringBoot整合MyBatis
首頁 Java java教程 Java SpringBoot整合JSP和MyBatis的方法是什麼

Java SpringBoot整合JSP和MyBatis的方法是什麼

May 11, 2023 pm 05:46 PM
java jsp springboot

Spring Boot starter入門

傳統的Spring 專案想要運行,不僅需要導入各種依賴,還要對各種XML 設定檔進行配置,十分繁瑣,但Spring Boot 專案在創建完成後,即使不編寫任何程式碼,不進行任何配置也能夠直接運行,這都要歸功於Spring Boot 的starter 機制

Spring Boot 將日常企業應用研發中的各種場景都抽取出來,做成一個個的starter(啟動器),starter 中整合了該場景下各種可能用到的依賴,使用者只需要在Maven 中引入starter 依賴,SpringBoot 就能自動掃描到要載入的資訊並啟動對應的預設配置。 starter 提供了大量的自動配置,讓使用者擺脫了處理各種依賴和配置的困擾。所有這些starter 都遵循著約定成俗的預設配置,並允許使用者調整這些配置,即遵循「約定大於配置」的原則

並不是所有的starter 都是由Spring Boot 官方提供的,也有部分starter 是第三方技術廠商提供的,例如druid-spring-boot-starter 和mybatis-spring-boot-starter 等等。當然也存在個別第三方技術,Spring Boot 官方沒提供starter,第三方技術廠商也沒有提供starter

#以spring-boot-starter-web 為例,它能夠提供Web 開發場景所需的幾乎所有依賴,因此在使用Spring Boot 開發Web 專案時,只需要引入該Starter 即可,而不需要額外導入Web 伺服器和其他的Web 依賴

    <!--SpringBoot父项目依赖管理-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.13</version>
        <relativePath/>
    </parent>

    <dependencies>
        <!--导入 spring-boot-starter-web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        ...
    </dependencies>
</project>
登入後複製

您可能會發現一個問題,即在以上pom.xml 的配置中,引入依賴spring-boot-starter-web 時,並沒有指明其版本(version),但在依賴樹中,我們卻看到所有的依賴都具有版本信息,那麼這些版本信息是在哪裡控制的呢?

其實,這些版本資訊是由 spring-boot-starter-parent(版本仲裁中心) 統一控制的。

spring-boot-starter-parent

spring-boot-starter-parent 是所有Spring Boot 專案的父級依賴,它被稱為Spring Boot 的版本仲裁中心,可以對專案內的部分常用依賴進行統一管理。

<!--SpringBoot父项目依赖管理-->
<parent>  
    <groupId>org.springframework.boot</groupId>   
    <artifactId>spring-boot-starter-parent</artifactId>    
    <version>2.4.5</version>    
</parent>
登入後複製

Spring Boot 專案可以透過繼承spring-boot-starter-parent 來獲得一些合理的預設配置,它主要提供了以下特性:

  • ##預設JDK 版本(Java 8)

  • 預設字元集(UTF-8)

  • 依賴管理功能

  • 資源過濾

  • 預設外掛程式配置

  • 識別application.properties 和application.yml 類型的設定檔

#SpringBoot基本設定

1.1 SpringBoot設定連接埠號碼

server:
  port: 8989 #配置端口
登入後複製

1.2 SpringBoot設定專案名稱

server:
  servlet:
    context-path: /springboot   #配置项目的虚拟路径(根路径) 项目名使用/开头
登入後複製

1.3 SpringBoot設定檔的分割

spring:
  profiles:
    active: dev  #开发环境
登入後複製

Java SpringBoot整合JSP和MyBatis的方法是什麼

1.4 SpringBoot開啟日誌

# 显示sql
logging:
  level:
    cn.kgc.springboot.mapper: debug  #开启日志
登入後複製

1.5 SpringBoot實作熱部署

在web專案的開放過程中,通常我們每次修改完程式碼都需要重新啟動項目,實現重新部署。但是隨著專案越來越龐大,每次啟動都是費時的事情。所以,熱部署是一個非常建構的技術,有了熱部署,可以大大提高我們的開發效率

spring-boot-devtools實現熱部署

## 1.引入依賴

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
</dependency>
登入後複製

2.設定maven外掛
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork> <!-- 如果devtools不生效  请设置该属性 -->
            </configuration>
        </plugin>
    </plugins>
</build>
登入後複製

3.設定application.yml檔案

devtools:
  restart:
    enabled: true #开启热部署
登入後複製

4.修改idea設定

#File-Settings-Compiler 勾選Build Project automatically

 5.設定Registry

  • ctrl shift alt / ,選擇Registry,勾選Compiler autoMake allow when app running

     1.6 SpringBoot開啟分頁查詢

    1.引入依賴:

    <dependency>
         <groupId>com.github.pagehelper</groupId>
         <artifactId>pagehelper-spring-boot-starter</artifactId>
         <version>1.2.12</version>
    </dependency>
    
    ----------------------------------------------
     <dependency>
         <groupId>com.github.pagehelper</groupId>
         <artifactId>pagehelper-spring-boot-starter</artifactId>
         <version>1.2.10</version>
    </dependency>
    登入後複製
    2.設定application.yml檔案(可以不配置使用預設)

    # pageHelper分页配置
    pagehelper:
      helper-dialect: mysql  #数据库类型
      reasonable: true   #分页合理化 page<1 查询第一页 page >pageNumber 查询最后一页
      support-methods-arguments: true  # 支持mapper接口传递参数开启分页
      params: count=countSql  #用于从对象中根据属性名取值
    登入後複製

    3.編寫控制器,業務層,持久化層進行測試

    @Override
    public PageInfo<User> getPage(int pageNum, int pageSize) {
    
        PageHelper.startPage(pageNum, pageSize);
    
        List<User> userList = userMapper.selectList();
    
        PageInfo<User> pageInfo = new PageInfo<>(userList);
    
        return pageInfo;
    }
    登入後複製
  • springBoot物件管理

管理物件

##spring中管理物件的方式:

1.使用xml設定文件,在檔案中使用bean標籤設定物件的管理

<bean id="" class="xxx.xxx.xxx"></bean>
登入後複製

2.使用註解@Component @Controller @Service @Repository

springboot管理物件的方式:

  • 1.使用設定方式建立物件

    # springboot支援使用 @Configuration

     註解添加在設定類別上,該類別作為一個設定類,相當於spring的設定檔,該註解只能使用在類別上。在設定類別中方法上使用 

    @Bean

     註解,相當於spring設定檔中的bean標籤

    @Configuration
    public class MyConfiguration{
        @Bean
        public User getUser(){
            return new User();
        }
        @Bean
        public Student getStudent(){
            return new Student();
        }
    }
    登入後複製

    2.使用原始的spring 註解 

    #@Component @Controller @Service @ Repository

    #########屬性注入##########spring 原始的注入方式######1.set方式##### #2.constructor######3.自動注入###
name: tom
age: 30
price: 23.5
sex: true
birth: 2021/11/28 12:12:12
array: 12,13,15,17
list: 李四,lisi,tom
map: "{&#39;aa&#39;:30,&#39;bb&#39;:&#39;lisi&#39;}" # 注入map使用json格式  取值的个数#{${map}}
登入後複製

对象的注入

object:
  name: lisi
  age: 20
  birth: 2021/11/24
登入後複製
@Controller
@RequestMapping("/inject2")
@ConfigurationProperties("object")
public class InjectController2 {

    private String name;
    private Integer age;
    private Date birth;

   	public void setName(String name) {
        this.name = name;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public void setBirth(Date birth) {
        this.birth = birth;
    }
    @RequestMapping("/inject")
    @ResponseBody
    public String inject(){
        System.out.println(name);
        System.out.println(age);
        System.out.println(birth);
        return  "ok";
    }
}
登入後複製

注意:添加一下依赖,可以再写yaml文件时提示,消除红色的警告提示。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
登入後複製

springBoot整合JSP

引入依赖

<!--        标准标签库-->
<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<!--        让springboot内置的tomcat具有解析jsp的能力-->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
登入後複製

配置视图解析器

spring:
  mvc:
    view:
      prefix: /
      suffix: .jsp
登入後複製

设置不重启项目 刷新jsp页面

server:
  servlet:
    jsp:
      init-parameters:
        development: true  # 修改jsp页面无需重新启动项目
登入後複製

集成后无法访问jsp页面解决方案

1.添加插件

<build>
    <resources>
        <!--注册webapp目录为资源目录-->
        <resource>
            <directory>src/main/webapp</directory>
            <targetPath>META-INF/resources</targetPath>
            <includes>
                <include>**/*.*</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
登入後複製

2.设置工作目录

Java SpringBoot整合JSP和MyBatis的方法是什麼

3.插件启动

Java SpringBoot整合JSP和MyBatis的方法是什麼

SpringBoot整合MyBatis

引入依赖

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.3</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.12</version>
</dependency>
登入後複製

编写配置文件

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf-8
登入後複製

mybatis配置

mybatis:
  mapper-locations: classpath:mapper/*.xml  #设置mapper文件的位置
  type-aliases-package: cn.kgc.springboot.entity # 起别名
  configuration:
    map-underscore-to-camel-case: true #开启驼峰命名
登入後複製

设置dao接口的扫描

1.在入口类上使用注解,完成扫描

@SpringBootApplication
@MapperScan("cn.kgc.springboot.dao") //扫描dao接口所在的包 同时生成代理对象 注入spring容器
public class Springday02Application {
    public static void main(String[] args) {
        SpringApplication.run(Springday02Application.class, args);
    }
}
登入後複製

以上是Java SpringBoot整合JSP和MyBatis的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java 中的完美數 Java 中的完美數 Aug 30, 2024 pm 04:28 PM

Java 完美數指南。這裡我們討論定義,如何在 Java 中檢查完美數?

Java 中的隨機數產生器 Java 中的隨機數產生器 Aug 30, 2024 pm 04:27 PM

Java 隨機數產生器指南。在這裡,我們透過範例討論 Java 中的函數,並透過範例討論兩個不同的生成器。

Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

Java 版 Weka 指南。這裡我們透過範例討論簡介、如何使用 weka java、平台類型和優點。

Java 中的史密斯數 Java 中的史密斯數 Aug 30, 2024 pm 04:28 PM

Java 史密斯數指南。這裡我們討論定義,如何在Java中檢查史密斯號?帶有程式碼實現的範例。

Java Spring 面試題 Java Spring 面試題 Aug 30, 2024 pm 04:29 PM

在本文中,我們保留了最常被問到的 Java Spring 面試問題及其詳細答案。這樣你就可以順利通過面試。

突破或從Java 8流返回? 突破或從Java 8流返回? Feb 07, 2025 pm 12:09 PM

Java 8引入了Stream API,提供了一種強大且表達力豐富的處理數據集合的方式。然而,使用Stream時,一個常見問題是:如何從forEach操作中中斷或返回? 傳統循環允許提前中斷或返回,但Stream的forEach方法並不直接支持這種方式。本文將解釋原因,並探討在Stream處理系統中實現提前終止的替代方法。 延伸閱讀: Java Stream API改進 理解Stream forEach forEach方法是一個終端操作,它對Stream中的每個元素執行一個操作。它的設計意圖是處

Java 中的時間戳至今 Java 中的時間戳至今 Aug 30, 2024 pm 04:28 PM

Java 中的時間戳記到日期指南。這裡我們也結合範例討論了介紹以及如何在java中將時間戳記轉換為日期。

Java程序查找膠囊的體積 Java程序查找膠囊的體積 Feb 07, 2025 am 11:37 AM

膠囊是一種三維幾何圖形,由一個圓柱體和兩端各一個半球體組成。膠囊的體積可以通過將圓柱體的體積和兩端半球體的體積相加來計算。本教程將討論如何使用不同的方法在Java中計算給定膠囊的體積。 膠囊體積公式 膠囊體積的公式如下: 膠囊體積 = 圓柱體體積 兩個半球體體積 其中, r: 半球體的半徑。 h: 圓柱體的高度(不包括半球體)。 例子 1 輸入 半徑 = 5 單位 高度 = 10 單位 輸出 體積 = 1570.8 立方單位 解釋 使用公式計算體積: 體積 = π × r2 × h (4

See all articles