SpringBoot入门

背景

地点:长沙欧富安科技园1栋5楼节点飞思

时间:2023/9/18~23

大致内容:SpringBoot

前言

作为Java最伟大的框架,想要学好它还是需要花点功夫,还得不仅仅只停留在使用阶段,对其源码的剖析也是尤为重要的,它能更好的帮助我们了解SpringBoot,从而创建独属于自己的SpringBoot。

SpringBoot

创建方式

macen(荐)

需要启动类,手动导入依赖,但无需网络。

Spring Initializr

首先得去官网下载项目和填写资料,需要启动类,网络,但能自动生依赖。

pom.xml

通过Maven新建的Spring boot需要继承此父类

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.3</version>
    <relativePath/>
  </parent>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

	
    <!--日志打印-->		
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.2</version>
    </dependency>

    <!--mysql-->
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
    </dependency>

    <!--mybatis-->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>3.0.2</version>
    </dependency>

  </dependencies>

启动类

作为SpringBoot的特点,需要创建一个Application类

package com.zs.app;

import com.zs.bean.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

//1、有一个main 
//2、注解 @SpringBootApplication
//相当于配置了@ComponentScan("com.zs.app")
//底层原理是springboot获取了当前启动类所在包,然后自动配置了
@Slf4j(topic = "e")
@SpringBootApplication
public class BootApplication {

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

        var iocContext = SpringApplication.run(BootApplication.class,args);
        //所有bean都会在getBeanDefinitionNames这个当中
        String[] beanDefinitionNames = iocContext.getBeanDefinitionNames();
        for (String beanDefinitionName : beanDefinitionNames) {
            log.debug(beanDefinitionName);
        }

    }
}

Controller

所在的包一定是启动类所在的包或者子包,如果不满足包的规则,则无法生效。

package com.jdfs.web;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

@Slf4j(topic = "e")
@Controller
public class IndexController {
    //请求体,可通过该路径找到该方法
    @RequestMapping("/index")
    //响应体,可以拿到返回值
    @ResponseBody
    public String index(){
        log.debug("Hello World");
        return "index";
    }
    
    @RequestMapping("/map")
    @ResponseBody
    public Map<String, Object> map(){
        log.debug("Hello World");
        Map<String, Object> map = new HashMap<>();
        map.put("Key","值");
        return map;
    }
}

部署与发布

package:在该模块的target目录下创建

控制台运行命令:java -jar xxx.jar

 <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <executable>true</executable>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>repackage</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

Mybatis

application.yml

#Mysql和数据源配置
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/train?serverTimezone=Asia/Shanghai
    username: root
    password: root

#sql语句存放位置以及别名设置
mybatis:
  mapper-locations: classpath*:mappers/*.xml
  type-aliases-package: com.jdfs.entity

静态资源访问

前后端分离,一般不过后台,在页面中直接跳转,如果需要过后台来跳转页面需要配置视图解析器

spring.mvc.view.prefix=/      "/"表示默认静态资源的访问路径(resources目录下的public、static、META-INF.resources)
spring.mvc.view.suffix=.html  ".html"表示返回值的字符串后缀

总览

总结

今日听君歌一曲,暂凭杯酒长精神

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值