首页 > 编程语言 > 详细

springboot:springboot初识(相关概念、新建项目)

时间:2020-07-15 15:58:10      阅读:80      评论:0      收藏:0      [点我收藏+]

1、简介

(1)出现的背景

  • javaee的开发需要笨重繁多的配置,开发效率低下,部署流畅复杂,第三方技术集成度大。springboot能够简化spring的开发,约定大于配置
  • 整合了spring技术栈
  • javaee开发的一站式解决方案

(2)优点

  • 快速创建独立运行的spring项目以及主流框架集成
  • 使用嵌入式的servlet容器,应用无需打成war包
  • struts自动依赖于版本控制
  • 大量的自动配置,简化开发,也可以修改默认值
  • 无需配置xml,无代码生成,开箱即可
  • 准生产环境的运行时应用监控
  • 与云计算的天然集成

(3)微服务

单体应用:

  • 开发部署简单,不牵涉到多个应用的互联。但是只要修改一处就要重新部署,还有日益增长的软件需求,使得应用过大。

微服务:

  • 与单体用用的单体复制部署到多个服务器来满足用户需求不同,微服务是把每一个功能元素放进一个独立的服务器中,是功能模块级别的复制,而不是整个应用。
  • 每一个功能元素都是一个可独立替换和独立升级的软件单元
  • 存在部署和运维较复杂的缺点
  • springboot快速构建一个应用、springcloud用于模块之间的互调、springcloud Data Flow分布式之间的流式计算批处理

 

2、新建SpringBoot项目

(1)新建一个maven的web工程

技术分享图片

 

 (2)在maven的配置文件中导入springboot的依赖

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.9.RELEASE</version>
      <type>pom</type>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>1.5.9.RELEASE</version>
    </dependency>

(3)编写主程序并启动SpringBoot应用:

//添加注解,标注一个主程序类,说明这是一个springboot应用
@SpringBootApplication(scanBasePackages = "pers")
public class HelloWorld {
    public static void main(String[] args) {
        //启动spring应用
        SpringApplication.run(HelloWorld.class,args);
    }
}

(4)书写controller层代码

@Controller
public class HelloController {
    @ResponseBody//
    @RequestMapping("/hello")
    public String hello(){
        return "hello world";
    }
}

@ResponseBody:这个类的所有方法返回的数据直接写给浏览器,如果是对象转换为json类型的数据

(5)运行主程序

技术分享图片

可以看出,在springboot的项目中,不需要配置视图解析器、前端控制器,甚至连tomcat都不需要配置

 

3、将springboot项目打成jar包

(1)导入依赖

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>1.5.9.RELEASE</version>
    </dependency>

(2)运行生命周期函数

技术分享图片

 

要确保maven的配置文件中的配置是生成jar包:

技术分享图片

 生成jar包成功:

技术分享图片

 (3)运行生成的jar包:在cmd中用java -jar命令运行

技术分享图片

 

 

4、依赖

(1)父项目

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.9.RELEASE</version>
      <type>pom</type>
    </dependency>

来管理springboot应用里面的所有依赖,是springboot的版本仲裁中心,例如:导入它管理范围内的依赖是不需要写版本号的,因为里面蕴含所有的版本信息

(2)spring-boot-starter-web依赖

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>1.5.9.RELEASE</version>
    </dependency>

spring-boot-starter:springboot的场景启动器,帮我们导入了web模块正常运行所依赖的组件。根据不同的功能,可以选择springboot的不同启动器。因为springboot将所有的功能都抽取了出来,做成一个个的启动器,只需要在项目里面引入这些启动器,相关场景的所有依赖都会导入进来

 

5、主程序类

(1)@SpringBootApplication注解

@SpringBootApplication(scanBasePackages = "pers")
public class HelloWorld {
    public static void main(String[] args) {
        //启动spring应用
        SpringApplication.run(HelloWorld.class,args);
    }
}

@SpringBootApplication标注在某一个类上面后就说明这个类是springboot的主配置类,可以运行这个类的main方法来启动springboot应用

(2)查看SpringBootApplication源码:它是由一系类的注解组成的

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)

@SpringBootConfiguration:springboot的配置类,表示这是一个springboot的配置类

@EnableAutoConfiguration:开启自动配置功能。例如:包扫描等。在配置@SpringBootApplication注解的时候,默认情况是只扫描主类的包,因此在扫描其他包的时候需要添加参数

 

6、使用spring initializer快速创建Spring Boot项目

(1)新建项目

技术分享图片

 (2)输入相关参数

技术分享图片

 (3)选择需要的功能(这里只选择web功能)

技术分享图片

 (4)创建项目成功

技术分享图片

能够正常访问:

技术分享图片

(5)特点

主程序已经生成,只需要添加业务逻辑即可

目录结构:

技术分享图片

 

springboot:springboot初识(相关概念、新建项目)

原文:https://www.cnblogs.com/zhai1997/p/13305197.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!