SpringBoot

不管你前面有没有学过Spring Framework,从这篇文章开始你将进入另一个Spring家族的成员SpringBoot。

关于SpringBoot

SpringBoot是什么?SpringBoot能干什么?来看看官方文档是怎么说的。

springboot框架介绍 博客_bc


翻译后再加上我的理解:它是GitHub上的一个开源框架,SpringBoot使创造一个独立的,生产级别的应用变得更加简单。

听起来就很棒吧,有学过spring framework的同学可以立刻感觉进入了一个更简洁的开发,没有学过spring framework的同学也能很快的搭建出spring boot的项目!那接下来就让我们来实践实践吧!

创建SpringBoot的两种方式

用Maven搭建

1.创建一个maven工程名为springboot(前面创建步骤就不说了,毕竟学到springboot了基础的maven搭建大家都会)

springboot框架介绍 博客_bc_02


2.在pom中添加父依赖管理(不懂的可以去看看Maven的知识,不过这不影响使用),这样就算是有spring boot的环境了!

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
    </parent>

3.添加spring boot的web启动器依赖(现先搭建一个web工程)

<dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    </dependencies>

可以看到,添加后的依赖应有尽有,当然spring的一些jar和一些常用的插件都在里边了(由于空间限制,下边的不能展开),并且内部处理过版本冲突。

springboot框架介绍 博客_spring_03


4.在java下创建一个com.wrial.BootDemo的类,编写main函数。

package com.wrial;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BootDemo {
    public static void main(String[] args) {
        SpringApplication.run(BootDemo.class,args);
    }
}

5.启动,会发现大大的logo,并且发现服务器已经运行起来了。

springboot框架介绍 博客_java_04


6.访问locallhost:8080,虽然是404,但是足以说明问题说明我们的MVC项目已经搭建成功了。

springboot框架介绍 博客_springboot框架介绍 博客_05


7.分析,从下图的加载日志可以很直观的看到端口号路径等配置信息,并且学过ssm的小伙伴有没有发现这里的好多配置我们以前都用手动的配置,如编码过滤器,servlet核心配置,还有我们以前手动写过的异常拦截器等等。SpringBoot已经在内部帮我们实现了这些繁琐的配置。

springboot框架介绍 博客_springboot框架介绍 博客_06


8.看了404不过瘾,是不是心里还有些疑惑,到底行不行啊,别急,接下来就创建一个Controller,我用来测试就写在刚刚那个包下。

知识点:RestController注解等价于Controller+ResponseBody。

package com.wrial;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

//@RestController
@Controller
public class WebBootDemo {
    @GetMapping("/hello")
    @ResponseBody
    public String hello(){
        return "魏某某男神!";
    }
}

启动项目来共同见证奇迹的来临!

springboot框架介绍 博客_springboot框架介绍 博客_07


还有一个很好玩的地方可以判断,这个还自带皮肤的!有点帅。

springboot框架介绍 博客_springboot框架介绍 博客_08

用SpringBoot的自动搭建

springboot的自动搭建这个就很方便了
网站 进入

springboot框架介绍 博客_java_09


1.可以在这里创建你的项目(通用配置),右边可以查找你想要的依赖。

2. 如果需要自己挑选进行特定配置,可以点击下方图片红色区域

springboot框架介绍 博客_bc_10


然后往下翻会看到很多很多的配置(配置太多只能展示局部)

springboot框架介绍 博客_springboot框架介绍 博客_11


springboot框架介绍 博客_bc_12


是不是特别快捷而且还能省去不需要的依赖!(仅适合老司机哦,萌新还是用默认的吧)

然后就会生成一个项目用编译器打开就可以用了哈!!!

一些疑问?

在我们以前的ssm项目中的讲解中,有说过当时对于那些不是自己写的类不能用注解配置,但是那只是spring2的事了,现在已经spring5,当然就会有其他方式来代替xml配置文件。因为springboot不可能满足一些人为控制的一些配置。Springboot就在这个基础上加上自己的优化,使配置更优雅(下次讲)。
那下面就展示一个数据库连接池的例子吧:
1.新建一个jdbc.properties文件

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/Mybatis
jdbc.username=root
jdbc.password=wrial.qq.com

2.使用java代码来代替xml配置

package com.wrial;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

@Configuration
@PropertySource("classpath:jdbc.properties")
public class DBConfig {
    @Value("${jdbc.url}")
    String url;
    @Value("${jdbc.driverClassName}")
    String driverClassName;
    @Value("${jdbc.username}")
    String username;
    @Value("${jdbc.password}")
    String password;

    @Bean
    public DataSource dataSource(){
       DruidDataSource druidDataSource = new DruidDataSource();
       druidDataSource.setDriverClassName(driverClassName);
       druidDataSource.setUrl(url);
       druidDataSource.setUsername(username);
       druidDataSource.setPassword(password);
       return druidDataSource;
    }
}

3.在环境中使用(我们只看效果,不做具体演示了),将datasource属性注入到WebBootDemo中,然后Debug设置断点查看dataSource的注入情况。

package com.wrial;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import javax.sql.DataSource;

@Controller
public class WebBootDemo {
    @Autowired
    private DataSource dataSource;

    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "魏某某男神!";
    }
}

4.访问localhost:8080/hello

springboot框架介绍 博客_bc_13


可以发现我们的属性已经注入进去了!说明数据源配置成功了!

springboot框架介绍 博客_java_14