SpringBoot的学习要点

打印 上一主题 下一主题

主题 659|帖子 659|积分 1977

目录
SpringBoot 
创建项目
配置文件 
注解 
定名规范
SpringBoot整合第三方技术
……


   

  • 中文文档:Spring Boot 中文文档 
  SpringBoot 

   

  • Spring Boot 是基于 Spring 框架的一种快速构建微服务应用的方式
  • 它紧张提供了自动配置、简化配置、运行时应用监控等功能
  • 它约定了一套项目开辟规则来自动完成整个项目标配置,从而让开辟人员可以或许简朴地创建完项目就可以直接进入开辟阶段
  • 优点:

    • 起步依赖(简化依赖配置)

      • parent, starter
      • 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,如果发生坐标错误,再指定Version

    • 自动配置(简化常用工程相关配置)
    • 辅助功能(内置服务器……)

      • tomcat(默认):apache出口,应用面广,负载了多少较重的组件
      • jetty:更轻量级,负载性能远不及tomcat
      • undertow:负载性能勉强胜于tomcat


  创建项目

   

  • 推荐使用Maven或Gradle来构建项目
  • 快速创建一个SpringBoot项目

    • 进入网站:Spring Initializr
    • 填写项目标各种配置信息,再添加Spring Web依赖,点击生成压缩包
    • 解压压缩包,用IDEA打开解压后得到的文件夹
    • 再修改设置里的Maven的仓库信息和使用的jdk版本,pom.xml文件等即可

  配置文件 

   

  • 默认配置文件为application.yml或application.properties,通常只用于存储SpringBoot项目标核心配置信息
  • 存放在项目标src/main/resources目录下,该目录在SpringBoot中的抽象路径为classpath
  • 一个项目里可以有多个配置文件,可以把不同范例的配置信息存储在不同的配置文件里
  • SpringBoot提供的配置文件格式:(优先序次:properties>yml)

    • application.properties(等号)

      •  key=value

    • application.yml(冒号后有一个空格):

      • key: value
      • yml数据读取:使用@Value读取单个数据,属性名引用方式:${一级属性名,二级属性名……}
      • yml文件内部引用属性:使用${xxx(属性名)},一变全变

        • 属性值中的转义字符须要用双引号包起

          • lesson: "Spring\tboot\nlesson"


      • 配置信息的简便用法:(把配置文件里须要的那部门信息封装成一个对象使用)

        • (1)使用@ConfigurationProperties注解绑定配置信息到封装类中
        • (2)封装类须要定义为Spring管理的bean,否则无法举行属性注入



  注解 

   

  • SpringBoot常用注解:



  • @SpringBootApplication

    • 每一个SpringBoot项目中都有一个启动类(主类),启动类必须被@SpringBootApplication注解标注,用于启动一个SpringBoot项目标SpringBootApplication.run()方法
    • 一个项目应该只使用一次@SpringBootApplication注解
    • 其只能扫描它地点的包及其子包中的代码,如果无法被扫描到,相当于无效代码
    • SpringBoot工程运行后初始化Spring容器,扫描引导类地点的包加载bean

  • Bean

    • Bean指的是由SpringBoot容器管理的对象
    • 依赖关系:一个对象中须要用到别的一个对象
    • 依赖注入:SpringBoot在创建一个对象时,会根据“依赖关系”,把这个对象依赖的对象注入此中
    • Bean的注册:SpringBoot自动寻找开辟人员已经创建好的Bean,并将其保存在SpringBoot容器中
    • Bean的注入:把SpringBoot容器中的Bean赋值给某个尚未被赋值的成员变量
    • Bean的获取:

      • 在类中创建一个属性,通过为属性添加注解,让SpringBoot为这个属性注入Bean
      • @Autowired
      • @Resource
      • @Value

    • 当SpringBoot项目被启动时,SpringBoot先会自动扫描所有的组件,然后注册所有的Bean,把这些Bean注入各自的使用场景中

  • 组件

    • 要想让@Bean收效,那么被标注的方法地点的类必须有下列此中一个的注解,以便被SpringBoot的组件扫描器扫描到
    • @Configuration
    • @Controller
    • @Service
    • @Repository
    • @Component
    • @Import:将@Bean地点类主动注册给SpringBoot

  定名规范

   

  • 包的定名

    • 风格一:以业务场景举行分类

      • 好比与登录有关的都放到login包下

    • 风格二:以功能模块举行分类

      • 好比负责页面跳转的Controller都放到controller包下

    • 常见分类:

      • 配置包:config / configuration,存放被@Configuration标注的类
      • 公共类包:common,存放供其他模块使用的组件、工具、枚举等代码

        • component:存放被@Component标注的类
        • utils / tools:存放工具类
        • constant:存放常量类

      • 控制器包:control / controller
      • 服务包:service,存放所有实现业务的服务类

        • impl:存放所有实现业务的服务接口

      • 数据库访问接口包

        • dao,存放用于操作数据库的代码
        • mapper,项目使用MyBatis作为长期层框架

      • 数据实体包

        • pojo,项目使用SSH(Spring+Struts+Hibernate)整合框架
        • model,项目使用SSM(Spring+SpringMVC+MyBatis)整合框架
        • entity,项目使用MyBatis框架

      • 过滤器包:filter
      • 监听器包:listener


  • Java文件定名 

    • 使用“驼峰定名法”:除了第一个单词,后面每个单词的首字母都大写,其他字母小写,单词之间没有下划线
    • 以“业务+模块”的方式定名,好比LoginController
    • 常见定名方式:

      • 控制器类:以Control或Controller结尾
      • 服务接口 / 类:以Service结尾
      • 接口的实现类:以Impl结尾
      • 工具类:以Util结尾
      • 配置类:以Config或Configuration结尾
      • 组件类:以Component结尾
      • 枚举:以Enum结尾
      • 实体类:

        • 名字必须是名词
        • 常见后缀名:

          • PO:长期层对象,persistent object
          • DO:数据对象, data object
          • DTO:数据传输对象, data transfer object
          • BO:业务对象, business object
          • VO:体现层对象, view object
          • POJO:简易的Java对象,plain,ordinary java object




  SpringBoot整合第三方技术

   

  • SpringBoot—— MyBatis
  • SpringBoot—— Redis
  • SpringBoot—— RabbitMQ
  • SpringBoot—— Thymeleaf
  • ……
  • 学完SpringBoot根本框架知识后,SpringBoot整合其他技术是重难点,用到什么学什么,大体思绪不要乱即可

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表