99网
您的当前位置:首页JAVA日常学习之SpringBoot

JAVA日常学习之SpringBoot

来源:99网

什么是SpringBoot:
Spring Boot 是一个 整合型框架它可以优化配置 相比传统的ssm框架少了大量是xml配置 我经常把spring boot 的项目看做一个jar包 应为使用它能快速的启动一个项目!

优点:简化配置 方便管理 能够快速开发一个项目 !
缺点:由于导入大量jar包,使项目更加臃肿!

如何快速的使用spring boot?

1.导入父依赖:

 <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
    </parent>

2.加入maven 相对于依赖

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




 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

3.编写守则

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

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

}

PS:关于@RestController和@Requestmap注解

我们的第一个注释Example类是@RestController。这被称为刻板印象注释它为阅读代码的人和Spring提供了提示,说明类扮演了特定的角色。在这种情况下,我们的类是一个web。@Controller,所以Spring在处理传入的Web请求时会考虑它。

写@RestController 后 可已不用写@ResponseBody,并且以josn形式响应给前端,@RestController 底层下有@ResponseBody,

这个@RequestMapping注释提供“路由”信息。它告诉Spring,任何带有/路径应映射到home方法。这个@RestController注释告诉Spring将结果字符串直接呈现给调用者。

关于:@EnableAutoConfiguration注解
第二个类级注释是@EnableAutoConfiguration。这个注释告诉SpringBoot根据您添加的JAR依赖项“猜测”如何配置Spring。自spring-boot-starter-web加上Tomcat和SpringMVC,自动配置假设您正在开发一个Web应用程序,并相应地设置Spring。

编写引导类

@EnableAutoConfiguration :启用自动配置
@ComponentScan :开启注解扫描
@@SpringBootApplication:源码下包含以上2个注解,可直接使用
@SpringBootConfiguration:相当@Configuration
,申明一个类是java配置类,通常一个工程中只包含一个该注解

这里我们可以使用@SpringBootApplication注释 进行简化

package com.example.myapplication;

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

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {

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

}

5.Springbean和依赖注入
您可以使用任何标准的SpringFramework技术来定义bean及其注入的依赖项。为了简单起见,我们经常发现@ComponentScan(找到您的bean)并使用@Autowired(进行构造函数注入)工作得很好。

如果按照上面的建议构造代码(将应用程序类定位在根包中),则可以添加@ComponentScan没有任何争论。所有应用程序组件(@Component, @Service, @Repository, @Controller(等等)自动注册为Springbean。

6.Spring Boot 的配置文件有哪几种格式?它们有什么区别?

我们可以点击:

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

然后会看到3种配置文件

这3种配置文件的优先级别为:
properties > yaml > yml

也就是说当 yml 文件配置了端口为 80 后我在配置一个 properties 文件 端口喂8088 那么8088端口就会覆盖80 端口

7.springboot的静态页放在哪里?

放在resources的static

这个是系统默认配置,如果我们并不想将资源放在系统默认的这五个位置上,也可以自定义静态资源位置和映射,自定义的方式也有两种,可以通过 application.properties 来定义,也可以在 Java 代码中来定义,

SpringBoot 的Java配置
SpringBoot的常用Java配置的注解有:
@Configuration:声明一个代替xml文件的注解
@Bean:声明在方法上,将方法的但绘制加入Bean容器,代替标签
@Value :属性注入
@PropertySource:指定外部属性文件

以下是我写的Demo 代码图:
引用 Jdbc 连接池 案例
第一:

第四 接口注入:

对以上的方法还可以改进为:

最后我们只需要启动我们带有@SpringBootApplication 的类即可
这里需要注意下的就是带了@SpringBootApplication 的类是有应用范围的它的作用域为同类级包下 也就说 在它包下就无法使用了

ps:重点

**自定义一些springMVC的配置,同时又保持mvc的特性(例如:,格式化器,视图控制器,消息转换器 等等),

你应该自定义一个(类)并让该类实现 (WebMvcConffigurer),并添加@Configuration 注解 ,注意千万不要加@EnableWebMvc 注解,

如果你想要自定义HandlerMapping,HandlerAdapter,ExceptionResolver 等组件,你可以创建一个WebMvcRegistrationsAdapter实例来提供以上组件。

相反如果你想完全自定义springMvc,不保留SpringBoot提供的一切特性,你就可以直接使用@Configuration 注解 和 @EnableWebMvc 注解**

以下为练手代码:

因篇幅问题不能全部显示,请点此查看更多更全内容