Springboot快速入门

目录

一、概述

SpringBoot的特性

1、起步依赖

2、自动配置

3、其他特性

二、入门程序

步骤

1、创建Maven工程

2、配置spirng-boot-stater-web起步依赖

3、编写Controller

4、提供启动类

启动

测试 

三、信息配置

四、整合mybatis

1、引入依赖

2、配置信息

3、使用案例


一、概述

传统的spring项目需要使用到这些模块,但随着发展发现这样存在许多弊端,导入依赖繁琐,项目配置繁琐。

这些依赖不仅需要一个一个手动导入,而且还可能发生jar包冲突问题 。

配写xml文件,我们要在applicationcontext.xml核心配置文件中配置大量的bean对象

随着业务越来越复杂,需要配置的bean越来越多,项目就越来越繁琐

因此,springboot应运而生。 


SpringBoot的特性

1、起步依赖

        本质上就是一个Maven坐标,整合了完成一个功能所需的坐标

                          spring的pom依赖                                                         springboot的起步依赖

这些原本都要放在pom文件中的依赖都被整合到了springboot的起步依赖中,其本质是利用了maven传递依赖的特性,

作用就是解决了配置繁琐的问题。

2、自动配置

遵循约定大于配置的原则,在boot程序启动后,一些bean对象会自动注入到ioc容器中,不需要手动生命,简化开发

                  spring配置mybatis                                                                springboot配置之mybatis

传统的mybatis在配置完mybatis的依赖后还需要配置两个bean,SqlSessionFactoryBean和MapperScannerConfigurer。但是使用springboot之后就自动帮你配置好了

3、其他特性

  • 内置的Toncat、Jetty(无需配置WAR文件)
  • 外部化配置
  • 不需要XML配置(使用properties/yml配置)


二、入门程序

需求:使用Springboot开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串"hello world"

java主要是用来开发web应用,所以我们直接从web开始入门。

传统的spring完成这个需求

使用springboot只需要引入依赖,然后就可以写Controller了,就完成了需求

步骤

1、创建Maven工程

idea中左侧自带Spring Initializr可以直接创建项目,右侧完善信息

2、配置spirng-boot-stater-web起步依赖

创建后目录如下

其中蓝色标注的文件目录可以暂时删掉,这些文件是什么?
        1、.mvn 文件夹:这是 Maven Wrapper 的存放位置,用于在没有全局安装 Maven 的情况下运行 Maven 项目。

        2、.gitignore 文件:用于指定应该被 Git 版本控制系统忽略的文件和目录。

        3、HELP.md 文件:一个 Markdown 格式的文件,通常包含项目的帮助信息、说明和指南。

        4、mvnw 文件:Maven Wrapper 的可执行脚本(Unix/Linux 系统),用于在项目中运行 Maven 命令。

        5、mvnw.cmd 文件:Maven Wrapper 的可执行脚本(Windows 系统),用于在项目中运行 Maven 命令。

详情信息及删除后果看这里icon-default.png?t=N7T8https://blog.csdn.net/T_Y_F_/article/details/131219011

3、编写Controller

注:@RestController = @Controller + @RequestBody

4、提供启动类

这里springboot会自动帮我们创建好这个启动类

至于以上两个类中的各个参数及注解代表什么意思可以看我之前写的spring入门文章,当然不理解也没关系,并不影响使用

目录的最终结构如下

注:启动类一定要和controller类放在同一个包下,否则后续发起请求时会报错

启动

出现tomcot部署在端口XXXX即代表启动成功

注:

假设出现这样的警告,是因为我们默认启动tomcat占用的端口号是8080,但此时他被别的进程占用了,导致了我们写的程序无法启动。

因此我们需要更改端口号, 在springboot默认创建的配置为application.properties,在文件中写

#端口号
server.port=8888

我们也可以改成application.yml(或yaml,都一样)格式文件,这样的话就要写成

#端口号
server:
  port: 8888

注意yml(yaml)格式中,:和值中间有一个空格,不然识别不了

这两种格式的配置文件都可以使用,看个人习惯

不过yml使用了换行加缩进来表示层级关系,更加清晰,推荐使用

测试 

在postman工具中(或者直接在网页上输也行)输入http://localhost:xxxx/hello

xxxx是你的端口号, /hello是你写的url

网页


三、信息配置

在传统的spring开发中,比如我们要使用阿里云服务,就要定义一个配置类。这样就与代码耦合度高了,以后想修改信息就得修改代码

我们更希望在不惊动代码的情况下完成信息配置,所以我们将配置信息写到yml(properties)中

但此时我们虽然编写完了配置信息,但是并没有获取信息,因为配置信息并不是像之前的bean一样。我们需要自己获取

使用@Value(" ${键名}")注解

如获取endpoint就是

@Value("${endpoint}")
public String endpoint;

但是这样还是很麻烦,如果有100个配置信息,那就得写100个@Value

因此,springboot提供了一个注解@Configrutionproperties(prefix="前缀")

这个注解要写在配置类上,这样就能自动获取"前缀"下的配置属性

如上面的例子,不同层级之间用“ . ”连接成一个就行

@ConfigurationProperties(prefix = "ali-yun.oss")

如果想在形参上使用,那么就是直接写在形参前面

@Bean
public Book book(@Value("${book.name}") String name,@Value("${book.price}" Integer price)){
    Book book = new Book();
    book.setName(name);
    book.setSystem(system);
    return book;
}


四、整合mybatis

1、引入依赖

mybatis是对数据库进行操作,因此需要引入两个依赖

        <!-- mybatis的起步依赖 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot</artifactId>
            <version>3.0.1</version>
        </dependency>

        <!-- mysql的驱动依赖 -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
        </dependency>

2、配置信息

spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springtest
    username: root
    password: 123456

url中最后一个是自己要使用的数据库,记得更改

mybatis已经在之前的博客中讲过了,这里不再讲述知识点

3、使用案例

随便创建一个数据库

为了方便排除查看bug,我们在添加几个配置

#开启驼峰命名
mybatis:
  configuration:
    mapUnderscoreToCamelCase: true

#打印日志信息
logging:
  level:
    com.wal: debug

驼峰命名就是,我们在数据库中的字段是book_id和book_name,而我们在创建其在java中的对应类的属性字段时并不想创建成book_id和book_name。java的开发规范应该是驼峰命名,即bookId和bookName。如果我们直接写成驼峰命名的话,数据库字段与实体类字段不一致,mybatis就无法识别。所以要在配置文件中开启驼峰命名转换,这样就可以在不一致的情况下使用了。

Mapper

public interface BookMapper {
    
    @Select("select * from t_book where book_id = ${id}")
    public Book findById(Integer id);
    
}

Service

@Service
public class BookServiceImpl implements BookService {

    @Autowired
    private BookMapper bookMapper;


    @Override
    public Book findById(Integer id) {
        return bookMapper.findById(id);
    }
}

Controller

@RestController
public class BookController {

    @Autowired
    private BookService bookService;

    @RequestMapping("/findById")
    public Book findById(Integer id){
        return bookService.findById(id);
    }
}

启动测试

由于我们在配置信息中配置了日志,所以会在控制台上打印出来日志

这个使springboot自带日志,如果觉得并不够详细,可以引入Lombok依赖日志、log4j2依赖日志,后面再讲。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

An1ong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值