Rumah  >  Artikel  >  Java  >  Bagaimanakah Java SpringBoot mengintegrasikan JSP dan MyBatis?

Bagaimanakah Java SpringBoot mengintegrasikan JSP dan MyBatis?

王林
王林ke hadapan
2023-05-11 17:46:06908semak imbas

Bermula dengan pemula Spring Boot

Untuk menjalankan projek Spring tradisional, anda bukan sahaja perlu mengimport pelbagai kebergantungan, tetapi juga mengkonfigurasi pelbagai fail konfigurasi XML, yang sangat menyusahkan, tetapi selepas projek Spring Boot dicipta, , ia boleh dijalankan secara langsung tanpa menulis sebarang kod atau membuat sebarang konfigurasi Ini semua berkat mekanisme pemula Spring Boot

Spring Boot mengekstrak pelbagai senario dalam pembangunan aplikasi perusahaan harian dan menjadikannya Setiap pemula mengintegrasikan pelbagai. kebergantungan yang mungkin digunakan dalam senario ini Pengguna hanya perlu memperkenalkan kebergantungan pemula dalam Maven, dan SpringBoot boleh mengimbas secara automatik maklumat untuk dimuatkan dan memulakan konfigurasi lalai yang sepadan. Pemula menyediakan sejumlah besar konfigurasi automatik, membebaskan pengguna daripada kerumitan berurusan dengan pelbagai kebergantungan dan konfigurasi. Semua pemula ini mengikut konfigurasi lalai konvensional dan membenarkan pengguna melaraskan konfigurasi ini, iaitu, mengikut prinsip "Konvensyen lebih besar daripada konfigurasi"

Bukan semua pemula dikuasakan oleh Spring Boot disediakan secara rasmi, dan beberapa pemula disediakan oleh vendor teknologi pihak ketiga, seperti druid-spring-boot-starter dan mybatis-spring-boot-starter, dsb. Sudah tentu, terdapat juga teknologi pihak ketiga individu secara rasmi tidak menyediakan pemula, dan vendor teknologi pihak ketiga juga tidak menyediakan pemula

Mengambil spring-boot-starter-web contoh, ia boleh menyediakan apa yang diperlukan untuk senario pembangunan Web, jadi apabila menggunakan Spring Boot untuk membangunkan projek Web, anda hanya perlu memperkenalkan Starter tanpa mengimport pelayan Web dan kebergantungan Web lain

    <!--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>
<.>Anda mungkin menemui masalah, iaitu, dalam konfigurasi pom.xml di atas, apabila memperkenalkan ketergantungan spring-boot-starter-web, versinya (versi) tidak dinyatakan, tetapi dalam pepohon kebergantungan, kita melihat bahawa semua kebergantungan mempunyai maklumat versi, jadi maklumat versi ini Di manakah ia dikawal?

Malah, maklumat versi ini dikawal secara seragam oleh

spring-boot-starter-parent (pusat timbang tara versi).

spring-boot-starter-parent

spring-boot-starter-parent ialah kebergantungan induk bagi semua projek Spring Boot, ia dipanggil versi Spring Boot Pusat timbang tara boleh mengurus secara seragam beberapa kebergantungan biasa dalam projek.

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

Projek Spring Boot boleh mendapatkan beberapa konfigurasi lalai yang munasabah dengan mewarisi spring-boot-starter-parent, yang terutamanya menyediakan ciri berikut:

  • Versi JDK lalai (Java 8)

  • Set aksara lalai (UTF-8)

  • Fungsi pengurusan pergantungan

  • Sumber penapisan

  • Konfigurasi pemalam lalai

  • Mengenal pasti fail konfigurasi jenis application.properties dan application.yml

Tetapan asas SpringBoot

1.1 Nombor port tetapan SpringBoot

server:
  port: 8989 #配置端口

1.2 nama projek tetapan SpringBoot

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

1.3 Pemisahan fail konfigurasi SpringBoot

spring:
  profiles:
    active: dev  #开发环境

Log permulaan 1.4 SpringBootBagaimanakah Java SpringBoot mengintegrasikan JSP dan MyBatis?

# 显示sql
logging:
  level:
    cn.kgc.springboot.mapper: debug  #开启日志

1.5 SpringBoot melaksanakan penempatan panas

Dalam proses pembukaan projek web, biasanya kita perlu memulakan semula kod setiap kali ubah suainya. Mulakan projek dan laksanakan penempatan semula. Tetapi apabila projek menjadi lebih besar dan lebih besar, setiap permulaan adalah perkara yang memakan masa. Oleh itu, penggunaan panas ialah teknologi yang sangat inovatif Dengan penggunaan panas, kami boleh meningkatkan kecekapan pembangunan kami dengan banyak

spring-boot-devtools melaksanakan penggunaan panas

1. Memperkenalkan. dependencies

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
</dependency>

2. Konfigurasikan maven plug-in

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork> <!-- 如果devtools不生效  请设置该属性 -->
            </configuration>
        </plugin>
    </plugins>
</build>

3 Konfigurasikan fail application.yml

devtools:
  restart:
    enabled: true #开启热部署

4 Ubah suai tetapan idea

File-Settings-Compiler Check Build Project secara automatik

5. Set Registry

ctrl + shift + alt + /, pilih Registry, check Compiler autoMake allow when app running

1.6 SpringBoot mendayakan pertanyaan paging

1 Memperkenalkan kebergantungan:

<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 Konfigurasikan fail application.yml (anda boleh menggunakan lalai tanpa konfigurasi)

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

3. Tulis pengawal, lapisan perniagaan dan lapisan kegigihan untuk ujian

@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;
}

pengurusan objek springBoot

    Objek pengurusan
  • Cara mengurus objek pada musim bunga:

    1 Gunakan fail konfigurasi xml dan gunakan tag kacang dalam fail untuk menetapkan pengurusan objek

    <bean id="" class="xxx.xxx.xxx"></bean>

    2. Gunakan anotasi @Component @Controller @Service @Repository

Cara springboot mengurus objek:

1 🎜> springboot menyokong penggunaan anotasi @Configuration

yang ditambahkan pada kelas konfigurasi Sebagai kelas konfigurasi, kelas ini bersamaan dengan fail konfigurasi spring ini hanya boleh digunakan pada kelas . Gunakan anotasi

@Bean

pada kaedah dalam kelas konfigurasi, yang bersamaan dengan tag kacang

@Configuration
public class MyConfiguration{
    @Bean
    public User getUser(){
        return new User();
    }
    @Bean
    public Student getStudent(){
        return new Student();
    }
}
dalam fail konfigurasi spring 2. Gunakan anotasi spring asal @. Komponen @Pengawal @Perkhidmatan @ Repositori

Suntikan atribut

  • kaedah suntikan asal spring

    kaedah 1.set

    2.pembina

    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.设置工作目录

Bagaimanakah Java SpringBoot mengintegrasikan JSP dan MyBatis?

3.插件启动

Bagaimanakah Java SpringBoot mengintegrasikan JSP dan 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);
    }
}

Atas ialah kandungan terperinci Bagaimanakah Java SpringBoot mengintegrasikan JSP dan MyBatis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam