springboot(一)
1,使用springboot开发需要以下配置:
: Maven | Gradle | Ant | Starters
code工具:IDE | Packaged | Maven | Gradle
系统要求:java8
springboot内置包含以下几个版本的web容器: Tomcat 8.5 3.1 Jetty 9.4 3.1 Undertow 1.3 3.1
2,在开始项目前在cmd里面输入以下两个命令(如果你妹有把maven的路径加紧环境变量,那么你就要在安装目录下打开用shift+鼠标右键):
$ java -version
java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
$ mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00) Maven home: /usr/local/Cellar/maven/3.3.9/libexec Java version: 1.8.0_102, vendor: Oracle Corporation
3,首先在pom文件大开头我们需要做以下事情:
1)在parent节点添加:spring-boot-starter-parent。他的作用是提供默认的maven
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version>
</parent>
2)指定web应用:spring-boot-starter-web
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3)下面我们来解读以下最简单例子
(1),@RestController 和 @RequestMapping 注解
@RestController :这个注解告诉人们这个是程序的开始,@Controller这个注解告诉我们这是个web
@RequestMapping:这个注解提供路由信息,http请求的时候 /path会自动映射到他注解的类及方法上,同时@RestController能够直接把结果串返回给请求方
@EnableAutoConfiguration:告诉springboot你要的配置,他会根据你在pom中添加的jar依赖
(2),main方法是一个应用的入口,他代表着SpringApplication,他通过执行run. SpringApplication来启动springboot项目。
args数组是接受命令行输入的参数
4,把项目打包成jar包
1)添加插件依赖
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2)然后在你文件目录下,也就是pom统计目录下,打开cmd,然后输入 mvn clean package
结束后在target文件夹下可以看到你打的jar包。
5,一些常用的spring-boot- starter
spring-boot-starter 核心starter,包含自动注入,日志,YAML
spring-boot-starter-activemq 消息队列,使用 Apache ActiveMQ
spring-boot-starter-amqp 使用Rabbit MQ(推荐)
spring-boot-starter-aop 使用aop切面,在做接口日志,接口验证的时候常用
spring-boot-starterdata-redis 使用redis
spring-boot-starter-thymeleaf 使用thymeleaf做web页面
spring-boot-starter-validation 使用validatior可以做字段的检测,判断非空,对数据质量提升有很大的帮助,可以和aop结合使用
spring-boot-starter-web 创建web项目,包含restfull
6,springboot项目结构
1)启动类应该放在根目录,并且最好是在其他类的上一级。@EnableAutoConfiguration这个注解经常放在主类main的上面。这样做的目的是因为springhboot启动的机制。在springboot启动的时候,会根据启动类所在的文件夹的地方,自动扫描所在文件夹及其子文件。即启动类上一级的文件是扫描不到的。
2)这个是目录结构
Application.java是启动类。@Configuration @EnableAutoConfiguration @ComponentScan这仨个注解经常会加在启动类
@Import:这个注解能够导入额外的配置classes
@ComponentScan:能够自动扫描所有spring元素,包含@Configuration注解的类
7,spring beans和依赖注入(Dependency Injection)
@ComponentScan我们能够使用这个类去找到bean
@Autowired这个能够轻松的注入
希望大家能够指出错误!
springboot(一)的更多相关文章
- 解决 Springboot Unable to build Hibernate SessionFactory @Column命名不起作用
问题: Springboot启动报错: Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ...
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
- Springboot搭建web项目
最近因为项目需要接触了springboot,然后被其快速零配置的特点惊呆了.关于springboot相关的介绍我就不赘述了,大家自行百度google. 一.pom配置 首先,建立一个maven项目,修 ...
- Java——搭建自己的RESTful API服务器(SpringBoot、Groovy)
这又是一篇JavaWeb相关的博客,内容涉及: SpringBoot:微框架,提供快速构建服务的功能 SpringMVC:Struts的替代者 MyBatis:数据库操作库 Groovy:能与Java ...
- 解决 SpringBoot 没有主清单属性
问题:SpringBoot打包成jar后运行提示没有主清单属性 解决:补全maven中的bulid信息 <plugin> <groupId>org.springframewor ...
- SpringBoot中yaml配置对象
转载请在页首注明作者与出处 一:前言 YAML可以代替传统的xx.properties文件,但是它支持声明map,数组,list,字符串,boolean值,数值,NULL,日期,基本满足开发过程中的所 ...
- springboot 学习资源推荐
springboot 是什么?对于构建生产就绪的Spring应用程序有一个看法. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.(这是springboot的官方介绍) 我们为什么要学 ...
- Springboot框架
本片文章主要分享一下,Springboot框架为什么那么受欢迎以及如何搭建一个Springboot框架. 我们先了解一下Springboot是个什么东西,它是干什么用的.我是刚开始接触,查了很多资料, ...
- 如何在SpringBoot中使用JSP ?但强烈不推荐,果断改Themeleaf吧
做WEB项目,一定都用过JSP这个大牌.Spring MVC里面也可以很方便的将JSP与一个View关联起来,使用还是非常方便的.当你从一个传统的Spring MVC项目转入一个Spring Boot ...
- 5分钟创建一个SpringBoot + Themeleaf的HelloWord应用
第一步:用IDE创建一个普通maven工程,我用的eclipse. 第二步:修改pom.xml,加入支持SpringBoot和Themeleaf的依赖,文件内容如下: <?xml version ...
随机推荐
- Can you solve this equation?
Can you solve this equation? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- Codeforces 376C. Socks
C. Socks time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...
- 私有成员 ECMAScript6 weakmap
把变量放到构造函数里进行私有化,每一个实例都会有一个getName方法,这是低效率的.function Person(name) { this.getName = function() { retur ...
- spa(单页应用)中,使用history模式时,微信长按识别二维码在ios下失效的问题
spa(单页应用,vue)中,使用history模式时,微信长按识别二维码在ios下失效的问题. 触发条件: spa单页应用: 路由模式 history 从其他页面跳转到带有微信二维码识别的页面(不是 ...
- day2--计算机基础
一.服务器 1u服务器,1u=4.45cm 戴尔服务器种类: 电脑主机组成 主板.CPU.内存.硬盘.显卡.声卡等等. 运维关注三大部件:CPU.内存.硬盘(Disk) 电源,考虑使用双电服务器,电源 ...
- Python解决 从1到n整数中1出现的次数
最近在看<剑指Offer>,面试题32的题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1的数字有1.10.11和12,1一共出 ...
- js 根据身份证号获取性别,年龄,等
$(function(){ $("#corpOwnerIdno").blur(function(){ //获取输入身份证号码 ...
- 《天书夜读:从汇编语言到windows内核编程》七 内核字符串与内存
1)驱动中的字符串使用如下结构: typedef struct _UNICODE_STRING{ USHORT Length; //字符串的长度(字节数) USHORT MaximumLength; ...
- [转载] Netty教程
转载自http://blog.csdn.net/kobejayandy/article/details/11493717 先啰嗦两句,如果你还不知道Netty是做什么的能做什么.那可以先简单的搜索了解 ...
- Python的__main__.py用法
[背景] 在看flower的时候看到__main__.py文件,不知道具体做什么用? 故先进行测试看看. [测试代码] 测试代码目录结构如下: . `-- test |-- __init__.py | ...