首頁 > Java > java教程 > 主體

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

王林
發布: 2023-05-11 17:46:06
轉載
913 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板