zoukankan      html  css  js  c++  java
  • SpringBoot入门001-hello spring

     

    前言

      由于是大学刚毕业,迫于找工作和个人的打算,放弃了大学自学2两年的前端(虽然感觉啥也没学到,还是菜鸡一个),决定转向后台java 的学习,之前学习中一直没时间做笔记。现在找到工作(勉强能养活自己),公司使用的spring boot框架,所以最近又转向spring boot的学习,所以,还是打算做一个笔记,由于本人目前还是个菜鸡,写博客只能让自己理解,如果能帮到你更好。等以后如果厉害了,说不定能写出不一样的博客,好了,,唠叨到此为止。

    什么是Spring Boot

       Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。其实按照我的个人理解,spring boot就是springmvc的一个升级版,它整合了许多优秀的框架,默认配置了众多框架不需要我们去配置繁琐的xml文件。

    spring boot到底带来了什么好处

      以前,我们创建一个spring web项目,那么以下几个步奏是必不可少的:

        (1):配置web.xml,加载spring以及springmvc;

        (2):配置数据库的连接以及spring事务;

        (3):加载配置文件的读取,开启注解;

       等等,还有其他的繁琐步奏,弄完之后,还需要把项目丢到tomcat服务器里面调试。如果项目修改了某处功能,那么也需要重启服务器。

    微服务和单体应用

      说到spring boot,那么,就必须谈到微服务和单体应用,那么,什么是单体应用呢,请看下面这张图:

    单体应用:

      如图所示,我们以前写的web项目,大致都是如上图所示,一个项目包含项目所需的各个功能模块,所有功能完成后将项目打包成war,发布,途中可以看出,单体应用所带来的弊端很多,例如当我们需要增加某个功能,那么修改之后就需要重新打包发布,可以说是“牵一发而动全身“,当然也带来了一些好处,比如单个发布,操作简单,测试也很简单。

    微服务:

    首先,上个图,如下图所示:

      

    从图中可以看出单体应用和微服务的区别,微服务主要是把各个功能模块拆分出来,自己拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时服务会使用最小的规模的集中管理 (例如 Docker) 能力,服务可以用不同的编程语言与数据库等技术实现。

    具体特点有:
    1、应用由一系列服务组成;
    2、独立的开发业务;
    3、单独部署;
    4、分布式管理

    搭建我的第一个SPring Boot项目

      说了那么多,有点偏离正轨了,下面,我们就来搭建自己的第一个springBoot项目吧!

      首先,搭建一个maven项目:打开IDEA,选择File->New->Project如下图所示:

    其次,找到Maven项目,如下图所示:

    当然,第一次新建需要导入jdk,jdk就是你安装jdk的目录。

    然后,填写各项,

    创建好项目之后,我们需要在pom文件里面写入spring boot所需要的相关依赖。spring官网:https://spring.io

    相关的依赖如下:

     1  <parent>
     2         <groupId>org.springframework.boot</groupId>
     3         <artifactId>spring-boot-starter-parent</artifactId>
     4         <version>1.5.9.RELEASE</version>
     5     </parent>
     6     <dependencies>
     7         <dependency>
     8             <groupId>org.springframework.boot</groupId>
     9             <artifactId>spring-boot-starter-web</artifactId>
    10         </dependency>
    11     </dependencies>
    12 
    13     <!-- 这个插件,可以将应用打包成一个可执行的jar包;-->
    14     <build>
    15         <plugins>
    16             <plugin>
    17                 <groupId>org.springframework.boot</groupId>
    18                 <artifactId>spring-boot-maven-plugin</artifactId>
    19             </plugin>
    20         </plugins>
    21     </build>

    导入完成后,编写我们的主要业务代码,目标是写一个网页请接口,访问接口,浏览器显示出hello spring boot;

      新建一个类,作为spring  boot的启动类:

     1 package com.thunisoft;
     2 
     3 import org.springframework.boot.SpringApplication;
     4 import org.springframework.boot.autoconfigure.SpringBootApplication;
     5 
     6 /**
     7  * @SpringBootApplication  标注主程序类,说明这是一个springboot应用类
     8  */
     9 @SpringBootApplication
    10 public class helloWord {
    11     public static void main(String[] args) {
    12         SpringApplication.run(helloWord.class,args);
    13     }
    14 }

     其次,编写业务层代码,简单返回:

     1 package com.thunisoft.Controller;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 import org.springframework.web.bind.annotation.ResponseBody;
     6 
     7 
     8 @Controller
     9 public class helloController {
    10     @RequestMapping("/hello")
    11     @ResponseBody
    12     public  String hello(){
    13         return "hello spring boot";
    14     }
    15 }

    到此为止,我们的功能告一段落,那么,如何启动项目呢,不需要将项目丢到tomcat里面,你只需要在启动类里面,运行main方法,就可以了。下面是控制台部分输出语句:

    可以看出,spring boot已经为我们内置tomcat服务器了。访问http://localhost:8080/hello,出现hello spring  boot,,到此为止大功告成。注意,访问的时候,不需要项目名!!

    如何打包

    那么,如何将项目进行打包发布呢,spring boot也为我们提供了简单的打包,方式,

    如图,点击左下角小图标,右侧出现maven,点击,

    点击package,可以看到控制台已经将项目打包成jar包。可以在cmd里面运行jar包,操作命令如下:

    可以看到,,项目成功运行。

  • 相关阅读:
    log4j2配置详解
    【数据库性能相关知识汇总】
    【Java并发知识点汇总】
    Spring实践系列-入门篇(一)
    分布式实践之概念解析
    平时工作需要注意总结面试中必然会问到的问题
    DataX支持mysql8.X
    springboot集成shiro
    ELK 6.2.4搭建
    DataX-MysqlWriter 插件文档
  • 原文地址:https://www.cnblogs.com/FENGXUUEILIN/p/9570930.html
Copyright © 2011-2022 走看看