>  기사  >  Java  >  Java SpringBoot는 JSP와 MyBatis를 어떻게 통합합니까?

Java SpringBoot는 JSP와 MyBatis를 어떻게 통합합니까?

王林
王林앞으로
2023-05-11 17:46:06872검색

Spring Boot 스타터 시작하기

기존 Spring 프로젝트를 실행하려면 다양한 종속성을 가져와야 할 뿐만 아니라 다양한 XML 구성 파일을 구성해야 하는데 이는 매우 번거롭습니다. 그러나 Spring Boot 프로젝트가 생성된 후에는 별도의 작업 없이도 가능합니다. Spring Boot의 스타터 메커니즘 덕분에 어떠한 코드도 작성하지 않고 직접 실행할 수 있습니다.

Spring Boot는 일상적인 엔터프라이즈 애플리케이션 개발에서 다양한 시나리오를 추출하여 하나씩 스타터로 만듭니다. 여기에 사용할 수 있는 다양한 종속성을 통합합니다. 시나리오. 사용자는 Maven에 스타터 종속성을 도입하기만 하면 SpringBoot는 로드할 정보를 자동으로 스캔하고 해당 기본 구성을 시작할 수 있습니다. 스타터는 많은 양의 자동 구성을 제공하여 사용자가 다양한 종속성과 구성을 처리해야 하는 번거로움을 덜어줍니다. 이러한 모든 스타터는 기존 기본 구성을 따르며 사용자가 이러한 구성을 조정할 수 있습니다. 즉 "Convention is great than Configuration"

모든 스타터가 Spring Boot에서 공식적으로 제공되는 것은 아니며 일부 스타터도 있습니다. 이는 druid-spring-boot-starter 및 mybatis-spring-boot-starter 등과 같은 타사 기술 공급업체에서 제공됩니다. 물론 개별 타사 기술도 있습니다. Spring Boot는 공식적으로 스타터를 제공하지 않으며 타사 기술 공급업체도 스타터를 제공하지 않습니다. 예를 들어 spring-boot-starter-web은 거의 제공할 수 있습니다. 웹 개발 시나리오에 필요한 모든 종속성. 따라서 Spring Boot를 사용하여 웹 프로젝트를 개발할 때 웹 서버 및 기타 웹 종속성을 추가로 가져올 필요 없이 Starter만 도입하면 됩니다.

    <!--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 종속성을 도입할 때 해당 버전이 지정되지 않지만 종속성 트리에서는 모든 종속성이 버전 정보를 가지고 있음을 볼 수 있습니다. 그러면 이 버전 정보는 어디에 제어됩니까? ?

실제로 이러한 버전 정보는

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 스프링부트 포트 번호 설정

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는 핫 배포를 구현합니다

웹 프로젝트 시작 과정에서 , 일반적으로 코드를 수정할 때마다 프로젝트를 다시 시작하고 재배포해야 합니다. 그러나 프로젝트가 점점 더 커지면서 각 시작에는 시간이 많이 걸리는 문제입니다. 따라서 핫 배포는 매우 혁신적인 기술입니다. 핫 배포를 사용하면 개발 효율성을 크게 향상시킬 수 있습니다

spring-boot-devtools는 핫 배포를 구현합니다

1. Maven 플러그인을 구성합니다.

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

3. application.yml 파일 구성

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

4. 아이디어 설정 수정

File-Settings-Compiler 및 Build Project 자동 확인

5. 레지스트리 설정

ctrl + Shift + Alt + /, 레지스트리 선택, 앱 실행 시 컴파일러 autoMake 허용 확인

1.6 SpringBoot에서 페이징 쿼리 활성화

1. 종속성 소개:
devtools:
  restart:
    enabled: true #开启热部署

2 application.yml 파일 구성(구성하지 않고 기본값을 사용할 수 있음)

<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>

3. 테스트용 컨트롤러, 비즈니스 레이어, 지속성 레이어 작성

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

springBoot 객체 관리

객체 관리
  • Spring에서 객체를 관리하는 방법:

    1. 파일 관리에서 Bean 태그 설정을 사용하십시오.

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

    2. @Component @Controller @Service @Repository

springboot가 객체를 관리하는 방법:

1 구성 방법을 사용하여 객체를 생성합니다. springboot는 @Configuration 주석 추가 사용을 지원합니다. 구성 클래스에서 이 클래스는 구성 클래스로서 스프링 구성 파일과 동일합니다. 이 주석은 클래스에서만 사용할 수 있습니다. 스프링 구성 파일

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

2의 bean 태그와 동일한 구성 클래스의 메서드에

@Bean

주석을 사용합니다. 원래 스프링 주석 @Component @Controller @Service @Repository

을 사용합니다.

속성 주입

    스프링 오리지널 주입 방식
  • 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으로 문의하시기 바랍니다. 삭제