spring boot

1、简介

 Boot可以很容易地创建独立的、基于Spring的生产级应用程序,可以“直接运行”。第三方库采取了一种固执己见的看法,这样你就可以以最小的麻烦开始。Spring Boot应用程序需要最少的Spring配置。

2、特性

1. SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中。

2,使编码变得简单,SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率,比如@Configuration和@bean注解结合,基于@Configuration完成类扫描,基于@bean注解把返回值注入IOC容器。

3.自动配置:SpringBoot的自动配置特性利用了Spring对条件化配置的支持,合理地推测应用所需的bean并自动化配置他们。

4.使部署变得简单,SpringBoot内置了三种Servlet容器,Tomcat,Jetty,undertow.我们只需要一个Java的运行环境就可以跑SpringBoot的项目了,SpringBoot的项目可以打成一个jar包。

3、简单搭建

3.1、创建maven项目

点击create

3.2、 导入依赖


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

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

并且刷新一下

3.3、 创建启动类

package com;


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

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

 3.4、创建控制类

package com.controller;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(){
        System.out.println(" 访问成功!");
        return "hello world";
    }
}

3.5、运行启动类main方法

 3.6、运行成功后访问localhost:8080/hello

SpringBoot内部已经约定会自动递归扫描启动类(@SpringBootApplication注解的类)所在的包,所以启动类必须放在包级别较高的位置。
 

SpringBoat中内嵌tomcat,所以main启动时,其实是启动了内嵌的tomcat。
main方法:把当前项目打成jar包,发布到内嵌的tomcat的webapps下,并修改server.xml配置文件,通过启动命令启动。
 

dependencyManagement:依赖管理工
它只负责定义版本号,进行版本管理,不负责导入依赖jar包。但当我们真的引入对应依赖的时候,就不需要再写版本号了。
SpringBoat中有很多starter启动器。每一个其实就相当于一个项目包,这里面依赖了很多其它的项目包。我们只需要引入starter,其它的依赖也跟着引引入进来。
starter-web: .SpringMVC所需要的jar包。


@SpringBootApplication 是—个组合注解,里面主要包含以下三个注解:
 

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
        excludeFilters = {@ComponentScan.Filter(type = FilterType.CUSTOM,
                classes = {TypeExcludeFilter.class}
        ) ,@ComponentScan.Filter(
                type = FilterType.CUSTOM,
                classes = {AutoConfigurationExcludeFilter.class}
        )}
)

@SpringBootConfiguration

  1. 它只是@Configuration注解的派生注解;

  2. 它与@Configuration注解的功能一致;

  3. 只不过@SpringBootConfiguration是springboot的注解,而@Configuration是spring的注解。

@Configuration 可以理解为一个Configuration就是对应的一个Spring的xml版的容器;(beans)
    @Component
    @Bean
    是两种使用注解来定义bean的方式。
        @Component(和@Service和@Repository)用于自动检测和使用类路径扫描自动配置bean。注释类和bean之间存在隐式的一对一映射(即每个类一个bean)。
        @Bean用于显式声明单个bean,而不是让Spring像上面那样自动执行它。它将bean的声明与类定义分离,并允许您精确地创建和配置bean。
        @Bean则常和@Configuration注解搭配使用:
            @Configuration
            public class WebSocketConfig {
                @Bean
                public Student student(){
                    return new Student();
                }
            }                     
        都可以使用@Autowired或者@Resource注解注入;
    @Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑。
    两者的区别:
        如果想将第三方的类变成组件,你又没有没有源代码,也就没办法使用@Component进行自动配置,这种时候使用@Bean就比较合适了。        
        另外@Bean注解的方法返回值是对象,可以在方法中为对象设置属性。

@EnableAutoConfiguration

帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot,并创建对应配置类的Bean,并把该Bean实体交给IoC容器进行管理。

@ComponentScan: 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该类所在的包下所有的类。

4、打包

打包插件

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

加之前 

加入后

双击

进入target目录

 

 启动后别关闭和窗口

去浏览器访问

5、热部署

1、引入依赖

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

 

运行后

ctrl + f9 进行热刷新 

相关推荐

  1. SpringBoot

    2023-12-06 21:28:05       27 阅读
  2. springboot

    2023-12-06 21:28:05       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 21:28:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 21:28:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 21:28:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 21:28:05       20 阅读

热门阅读

  1. Linux定时器

    2023-12-06 21:28:05       32 阅读
  2. Android-P CameraSerivce

    2023-12-06 21:28:05       36 阅读
  3. 代币化对网约车区块链平台的影响

    2023-12-06 21:28:05       25 阅读
  4. Spring中的AOP思想

    2023-12-06 21:28:05       32 阅读
  5. 【重点】【区间问题】56.合并区间

    2023-12-06 21:28:05       38 阅读
  6. windows 服务的安装、启动、状态查询 c++实现

    2023-12-06 21:28:05       30 阅读
  7. 27、卷积 - 卷积特征的可视化和一个神奇的网站

    2023-12-06 21:28:05       44 阅读
  8. 人工智能-语音识别技术paddlespeech的搭建和使用

    2023-12-06 21:28:05       41 阅读
  9. Kafka相关面试题

    2023-12-06 21:28:05       39 阅读
  10. Redis - 多数据源切换

    2023-12-06 21:28:05       30 阅读
  11. C# 图片下载工具类

    2023-12-06 21:28:05       33 阅读