zoukankan      html  css  js  c++  java
  • 微服务架构 SpringBoot(一)

    spring Boot:官网地址 https://spring.io/

    由来:

    随着spring组件功能的强大,配置文件也越来越复杂繁琐,背离了spring公司的简洁快速开发原理,2015年就推出Springboot,号称几乎配置,简洁快速,确实也是这样,3分钟搭起后端框架。

    为什么学习Spring Boot

    • 简介开发,时间就是金钱
    • 了解互联网公司技术特点
    • 顺应趋势早受益(好东西大家都用)

    使用spring boot有什么好处

    其实就是简单、快速、方便!平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?

    • 配置web.xml,加载spring和spring mvc
    • 配置数据库连接、配置spring事务
    • 配置加载配置文件的读取,开启注解
    • 配置日志文件

    ...

    配置完成之后部署tomcat 调试

    ...

    现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!

    但是如果使用spring boot呢?

    很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!

    说这么多 来点实战的就知道了,绝对颠覆三观(php是最好的语言)

    Spring Boot核心功能

    • 可以独立运行的Spring项目:可以以jar的形式独立运行,通过java -jar xx.jar即可运行
    • 内嵌servlet容器:可以选择内嵌tomcat,jetty等
    • 提供servlet简化maven配置:一个maven项目,使用了jar spring-boot-starter-web时,就会自动加载Spring-boot的依赖包
    • 自动配置spring:Spring boot会根据在类路径中的jar包、类,为jar包中的类自动封装配置bean
    • 准生产的应用健康:提供基于httpssh elnet运行时的项目进行监控
    • 无代码生成和xml配置:主要通过条件注解来实现

    快速入门web开发

    1.访问官网:www.spring.io 构建项目

     

     

        

    直接下载好了 解压,导入你的编印工具 我用的eclipse

    2.导入第一个springboot项目:

     导入之后适应自己的开发环境(默认构建的项目1.8,我这里用的1.7)

     修改pom文件:配置自己的jdk版本号

     

    pom.xml文件中默认有两个模块:

    spring-boot-starter:核心模块,包括自动配置支持、日志和YAML;

    spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito。

    Maven刷新修复项目

     SpringBoot目录结构 

    • 如上图所示,Spring Boot的基础结构共三个文件:
    • src/main/java  程序开发以及主程序入口
    • src/main/resources 配置文件
    • src/test/java  测试程序
    •  另外,spingboot建议的目录结果如下:
    • root package结构:com.example.myproject
    com
      +- example
        +- myproject
          +- Application.java
          |
          +- domain
          |  +- Customer.java
          |  +- CustomerRepository.java
          |
          +- service
          |  +- CustomerService.java
          |
          +- controller
          |  +- CustomerController.java
          |
    
    • Application.java 建议放到跟目录下面,主要用于做一些框架配置
    • domain目录主要用于实体(Entity)与数据访问层(Repository)
    • service 层主要是业务类代码
    • controller 负责页面访问控制
    • 采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改

    最后,启动Application main方法,至此一个java项目搭建好了!

     

    启动成功接下来玩controller吧

    @Controller
    //@RestClientTest // 标识这个类返回值为json 类似@ResponseBody
    public class HelloSpringBootContorller {
    	
    	@RequestMapping(value ={"/index","index2"})
    	@ResponseBody
    	public Map<String,String> index(){
    		Map map = new HashMap();
    		 map.put("hello", "Spring Boot!!");
    			
    		 return  map;
    	}
    }
    

     运行SpringbootdemoApplication main方法访问:

    到此一个web应用就搭好了,简单吗?

    玩点有意思的吧:

    想自定义banner那么先来看下application.properties配置文件 ,如下图第一个配置tomcat端口号 第二个配置banner就是上图的路径在哪里,实现方式有时间可以点开看看源码,很简单。后期很多配置都会基于此配置文件,会一步步介绍。

    给大家粘贴一份吧:2b.txt

    ${AnsiColor.BRIGHT_YELLOW}
                       _ooOoo_
                      o8888888o
                      88" . "88
                      (| -_- |)
                      O  =  /O
                   ____/`---'\____
                 .'  \|     |//  `.
                /  \|||  :  |||//  
               /  _||||| -:- |||||-  
               |   | \  -  /// |   |
               | \_|  ''---/''  |   |
                 .-\__  `-`  ___/-. /
             ___`. .'  /--.--  `. . __
          ."" '<  `.___\_<|>_/___.'  >'"".
         | | :  `- \`.;` _ /`;.`/ - ` : | |
            `-.   \_ __ /__ _/   .-` /  /
    ======`-.____`-.___\_____/___.-`____.-'======
                       `=---='
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
             佛祖保佑       永无BUG
    

     

     启动变生效,自定义banner,请访问:https://spring-boot-banner-gen.cfapps.io/banner 很有意思。

    总结

    使用spring boot可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用sping boot非常适合构建微服务。
    今天只是个认识,入门,后期定时推送相关SpringBoot文档,点播关注吧。

    技术交流群,海量学习资料免费获取:Q群:289683917

  • 相关阅读:
    都9012了,Java8日期时间API你还没有掌握?
    图解AQS的设计与实现,手摸手带你实现一把互斥锁!
    面试填坑笔记-从代理模式到SpringAOP的动态代理
    并发编程-硬件加持的CAS操作够快么?
    并发编程-Java内存模型到底是什么
    并发编程-你真的知道并发问题产生的源头吗?
    单例模式-最简单的设计模式?
    浅谈Java中的深克隆和浅克隆(阿里面试)
    设计模式-工厂模式
    浅谈MySQL存储引擎-InnoDB&MyISAM
  • 原文地址:https://www.cnblogs.com/douyu2580860/p/8143016.html
Copyright © 2011-2022 走看看