什么是SpringBoot

  java问世20年以来,发展到现在从技术角度来说已经很成熟,开发过程中我们总是在想如何去提高团队开发规范性、减少重复配置、避免低效开发、部署发布时流程的复杂度以及第三方技术集成难度大。

  在这样的背景下,SpringBoot就横空出世了,它使用了“习惯优于配置(本来项目中存在很多配置,此外还内置一个习惯配置,让你可以手动配置@configuration注解)”的理念让项目快速运行起来。

  在地址中:https://spring.io/docs

  进入了一个项目可选的,建议选择1.5.10左右的版本,很多企业都在用,在这里创建之后解压,用STS、idea、eclipse等工具导入Maven项目就可以了。

SpringBoot 的核心功能

  1.独立运行的Spring项目

    SpringBoot可以以jar包的方式独立运行,没错不需要部署到外部tomcat下面了,因为内嵌有Tomcat,运行一个SpringBoot项目只需通过java -jar xx.jar,刚上面说的省去了部署时间了。

  2.内嵌Servlet容器

    SpringBoot可以选择内嵌Tomcat、Jetty或者Undertow、这样我们无需以war包的方式部署项目了。

  3.Spring提供一系列的start pom 来简化Maven的依赖加载,例如 下图自动加入的包:

  4.自动配置Spring Boot 会自动在jar包,类,为jar包里的类自动配置bean,会极大的减少我们使用的配置,当然,springboot只是考虑了大多数开发场景使用,如实际开发中我们需要自己配合bean也可以办到。

package com.demo.data.service.conf;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy; @Configuration
@EnableAspectJAutoProxy
@ComponentScan("com.demo.data.service.*")
public class AopConfig {
}

  5.准生产的应用监控

  Spring Boot提供基于http相关对运行时项目的监控

  6.无代码生成和xml配置

  SpringBoot巧妙了避开了大量代码生成,而是采用了注解的方式,这也是采用Spring4提供的新特性,提议java配置和注解组合,不需要xml文件就可以实现Spring的所有配置

常用注解

  1.@Enable*注解开启功能非常实用

    @EnableAspectAutoProxy  开启对AspectJ 自动代理的支持

    @EnableAsync 开启异步方法支持

    @EnableScheduling  计划任务的支持

    @EnableWebMvc  WebMvc配置的支持

    @EnableConfigurationProperties  对@ConfigurationProperties注解配置Bean的支持

    @EnableJpaRepositories 对Spring Date  Jpa Repository

    @EnableTransactionManagement 注解式事务的支持开启

    @EnableCaching  注解是缓存开启

  2.SpringMvc常用注解

    @Controller 不解释了

    @RequestMapping 不解释了

    @RequestBody不解释了

    @PathVariable 用来接受路径参数

    @ReatContoller 很常见,他是@Controller和ResponseBody结合

  3.核心注解条件

    @ConfigurationOnBean  容器指定Bean的条件下

    @ConfigurationOnClass  类路径下有指定类的条件下

    @ConfigurationOnExpression  基于SqEL表达是作为判断条件

    @ConfigurationOnJava  基于JVM表达是作为判断条件

    @ConfigurationOnJndi  基于JDNI存在的条件下查找指定的位置

    @ConfigurationOnMissingBean  容器里没有指定Bean的条件下

    @ConfigurationOnProperty  指定的属性是否有指定的值

    @ConfigurationOnResource  类路径是否有指定的值

    @ConfigurationOnWebApplication  当前项目是Web项目的条件下

我的建议是尽快掌握注解式编程,不然看代码和写代码都是两眼一抹黑,上面很多是我个人意见,如有问题,欢迎给我留言,我会及时回复的......

springboot入门的一点基础的更多相关文章

  1. SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

    SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...

  2. javaConfig&springBoot入门

    javaConfig&springBoot入门 1. javaConfig基础 1.1 为什么要学习javaConfig 因为:Springboot原理基于它的!!!(为学习springBoo ...

  3. SpringBoot入门基础

    目录 SpringBoot入门 (一) HelloWorld. 2 一 什么是springboot 1 二 入门实例... 1 SpringBoot入门 (二) 属性文件读取... 16 一 自定义属 ...

  4. SpringBoot入门及深入

    一:SpringBoot简介 当前互联网后端开发中,JavaEE占据了主导地位.对JavaEE开发,首选框架是Spring框架.在传统的Spring开发中,需要使用大量的与业务无关的XML配置才能使S ...

  5. Membership三步曲之入门篇 - Membership基础示例

    Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Pro ...

  6. 快速入门系列--WebAPI--01基础

    ASP.NET MVC和WebAPI已经是.NET Web部分的主流,刚开始时两个公用同一个管道,之后为了更加的轻量化(WebAPI是对WCF Restful的轻量化),WebAPI使用了新的管道,因 ...

  7. [转]Membership三步曲之入门篇 - Membership基础示例

    本文转自:http://www.cnblogs.com/jesse2013/p/membership.html Membership三步曲之入门篇 - Membership基础示例   Members ...

  8. VB6 GDI+ 入门教程[5] 基础绘图小结

    http://vistaswx.com/blog/article/category/tutorial/page/2 VB6 GDI+ 入门教程[5] 基础绘图小结 2009 年 6 月 18 日 4条 ...

  9. 【原】无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础授权权限

    上一篇<[原]无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础认证权限>介绍了实现Shiro的基础认证.本篇谈谈实现 ...

随机推荐

  1. 《深入理解Java虚拟机》——垃圾收集器与内存分配策略

    GC需要完成: 哪些内存需要回收 什么时候回收 如何回收 如何确定对象不再使用 引用计数算法 给对象添加一个引用计数器,当有一个地方引用它时,计数器值进行加1操作:当引用失效时,计数器值进行减1操作: ...

  2. C++ cin.get及getline的用法

    1.cin.get() 从指定的输入流中提取一个字符,函数的返回值就是这个字符.文件结束符会返回EOF,一般以-1代表EOF. #include<iostream> using names ...

  3. xBIM WeXplorer xViewer 浏览器检查

    目录 基础 xBIM WeXplorer 简要介绍 xBIM WeXplorer xViewer 基本应用 xBIM WeXplorer xViewer 浏览器检查 xBIM WeXplorer xV ...

  4. (转)CocoaPods:管理Objective-c 程序中各种第三方开源库关联

    在我们的iOS程序中,经常会用到多个第三方的开源库,通常做法是去下载最新版本的开源库,然后拖拽到工程中. 但是,第三方开源库的数量一旦比较多,版本的管理就非常的麻烦.有没有什么办法可以简化对第三方库的 ...

  5. php实现301跳转

    php实现301跳转代码 <?php Header("HTTP/1.1 301 Moved Permanently"); Header("Location: htt ...

  6. 谈谈语音通信中的各种tone

    今天谈的这个主题(tone)存在于我们的日常打电话过程中.先举两个场景:1,你拿起固话话筒准备打电话,按电话号码前先从话筒里听到"嗡"的连续音,这叫dial tone(拨号音,表示 ...

  7. angular2 localStorage的使用

    最近从ng1  转ng2     相信 使用ng1的同学都知道 ngStorage 这个插件吧,  存储 本地数据 下面介绍一下 ng2 使用 localStorage 参考 github https ...

  8. Redis进阶实践之十二 Redis的Cluster集群动态扩容

    一.引言     上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境.当然,大家可以使用 Cluster info 命令查看Cl ...

  9. [记录]Shell中的getopts和getopt用法

    Shell中的getopts和getopt用法 1.getopts getopts(shell内置命令)不能直接处理长的选项(如:--prefix=/home等),getopts有两个参数,第一个参数 ...

  10. 【前端开发】解决ios设备上fixed浮动的input输入框兼容问题

    我们在开发移动端页面时,经常会存在这种需求,在页面顶部或底部有一个输入框,一直浮动在顶部或底部位置,中间部分的内容是可以滚动的.比如底部输入框的搜索功能,或底部输入框的写评论功能. 这种问题,我们一般 ...