转载请标明出处:
https://www.fangzhipeng.com/springboot/2017/05/25/sb25-2hour.html
本文出自方志朋的博客

一.什么是spring boot

Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible.

摘自官网

翻译:采纳了建立生产就绪Spring应用程序的观点。 Spring Boot优先于配置的惯例,旨在让您尽快启动和运行。

spring boot 致力于简洁,让开发者写更少的配置,程序能够更快的运行和启动。它是下一代javaweb框架,并且它是spring cloud(微服务)的基础。

二、搭建第一个sping boot 程序

可以在start.spring.io上建项目,也可以用idea构建。本案列采用idea.

具体步骤:

new prpject -> spring initializr ->{name :firstspringboot , type: mavenproject,packaging:jar ,..}  ->{spring version :1.5.2  web: web } -> ....

应用创建成功后,会生成相应的目录和文件。

其中有一个Application类,它是程序的入口:

@SpringBootApplication
public class FirstspringbootApplication {public static void main(String[] args) {SpringApplication.run(FirstspringbootApplication.class, args);}
}

在resources文件下下又一个application.yml文件,它是程序的配置文件。默认为空,写点配置 ,程序的端口为8080,context-path为 /springboot:

server:port: 8080context-path: /springboot

写一个HelloController:

@RestController     //等同于同时加上了@Controller和@ResponseBody
public class HelloController {//访问/hello或者/hi任何一个地址,都会返回一样的结果@RequestMapping(value = {"/hello","/hi"},method = RequestMethod.GET)public String say(){return "hi you!!!";}
}

运行 Application的main(),呈现会启动,由于springboot自动内置了servlet容器,所以不需要类似传统的方式,先部署到容器再启动容器。只需要运行main()即可,这时打开浏览器输入网址:localhost:8080/springboot/hi ,就可以在浏览器上看到: hi you!!!

三.属性配置

在appliction.yml文件添加属性:

server:port: 8080context-path: /springbootgirl:name: Bage: 18content: content:${name},age:${age}

在java文件中,获取name属性,如下:

@Value("${name}")private String name;

也可以通过ConfigurationProperties注解,将属性注入到bean中,通过Component注解将bean注解到spring容器中:

@ConfigurationProperties(prefix="girl")
@Component
public class GirlProperties {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

另外可以通过配置文件制定不同环境的配置文,具体见源码:

spring:profiles:active: prod

四.通过jpa方式操作数据库

导入jar ,在pom.xml中添加依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>

在appilication.yml中添加数据库配置:

spring:profiles:active: proddatasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/dbgirl?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8username: rootpassword: 123jpa:hibernate:ddl-auto: createshow-sql: true

这些都是数据库常见的一些配置没什么可说的,其中ddl_auto: create 代表在数据库创建表,update 代表更新,首次启动需要create ,如果你想通过hibernate 注解的方式创建数据库的表的话,之后需要改为 update.

创建一个实体girl,这是基于hibernate的:

@Entity
public class Girl {@Id@GeneratedValueprivate Integer id;private String cupSize;private Integer age;public Girl() {}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getCupSize() {return cupSize;}public void setCupSize(String cupSize) {this.cupSize = cupSize;}
}

创建Dao接口, springboot 将接口类会自动注解到spring容器中,不需要我吗做任何配置,只需要继承JpaRepository 即可:

//其中第二个参数为Id的类型
public interface GirlRep extends JpaRepository<Girl,Integer>{}

创建一个GirlController,写一个获取所有girl的api和添加girl的api ,自己跑一下就可以了:


@RestController
public class GirlController {@Autowiredprivate GirlRep girlRep;/*** 查询所有女生列表* @return*/@RequestMapping(value = "/girls",method = RequestMethod.GET)public List<Girl> getGirlList(){return girlRep.findAll();}/*** 添加一个女生* @param cupSize* @param age* @return*/@RequestMapping(value = "/girls",method = RequestMethod.POST)public Girl addGirl(@RequestParam("cupSize") String cupSize,@RequestParam("age") Integer age){Girl girl = new Girl();girl.setAge(age);girl.setCupSize(cupSize);return girlRep.save(girl);}}

如果需要事务的话,在service层加@Transaction注解即可。已经凌晨了,我要睡了.

源码;http://download.csdn.net/detail/forezp/9778235

参考资料

说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com @廖师兄


扫码关注公众号有惊喜

(转载本站文章请注明作者和出处 方志朋的博客)

SpringBoot非官方教程 | 第二十五篇:2小时学会springboot相关推荐

  1. SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台

    转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...

  2. SpringBoot非官方教程 | 第二十篇: 处理表单提交

    转载请标明出处: http://blog.csdn.net/forezp/article/details/71023868 本文出自方志朋的博客 这篇文件主要介绍通过springboot 去创建和提交 ...

  3. 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...

    经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...

  4. SpringBoot 系列教程(八十五):Spring Boot使用MD5加盐验签Api接口之前后端分离架构设计

    加密算法参考: 浅谈常见的七种加密算法及实现 加密算法参考: 加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用 目的: 通过对API接口请求报文签名,后端进行验签处理, ...

  5. (转) SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解

    springboot采纳了建立生产就绪spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...

  6. Android UI开发第二十五篇——分享一篇自定义的 Action Bar

    Action Bar是android3.0以后才引入的,主要是替代3.0以前的menu和tittle bar.在3.0之前是不能使用Action Bar功能的.这里引入了自定义的Action Bar, ...

  7. SpringBoot 系列教程(六十五):Spring Boot整合WxJava开发微信公众号

    一.前言 做微信公众号开发项目以及近两年整了,积累了一点微薄的行业经验,既然开了微信开发专栏博客,那么今天就来回忆回忆,从零开始搭建一个微信公众号开发的框架,可以用于企业级项目开发的脚手架,同时搭配博 ...

  8. SpringBoot第二十五篇:2小时学会springboot

    一.什么是spring boot Takes an opinionated view of building production-ready Spring applications. Spring ...

  9. SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解

    springboot采纳了建立生产就绪Spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...

  10. SpringBoot非官方教程 | 第二篇:SpringBoot配置文件详解

    springboot采纳了建立生产就绪Spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...

最新文章

  1. 路飞学院-Python爬虫实战密训班-第2章
  2. NHibernate重要概念的解释和说明
  3. LeetCode【217. Contains Duplicate】
  4. 【收藏】go博客 zxysilent / blog
  5. [导入]LAMP架构下安装Drupal
  6. 游戏中常用的寻路算法的分享(4)处理移动中的障碍物
  7. bzoj1975 [Sdoi2010]魔法猪学院 a*+堆
  8. 戴志坚接替李小加出任职港交所行政总裁 基本年薪700万港元
  9. LeetCode: Add Binary 解题报告
  10. spring-mvc.xml与spring-mybatis.xml配置文件中命名空间问题
  11. winxp java 控制台_winxp系统设置java环境变量的详细教程
  12. 停车场无人值守管理系统
  13. 手机12306买卧铺下铺技巧_12306火车票如何买下铺 手机12306买下铺技巧
  14. recordcount=-1的原因以及解决方法
  15. arcgis10.3添加工具
  16. 开发中常用的几种 Content-Type以及图片上传前后端分离开发处理方式
  17. 【后厂村】打工人的愿望
  18. android手机变windows8,安卓手机如何把手机界面投屏到windows8/10电脑上
  19. 巨型计算机卡通,动漫史上十大超巨型机体
  20. Elasticsearch(十)【NEST高级客户端--搜索查询】

热门文章

  1. Python3之正则表达式详解!
  2. Servlet和Servlet容器概念
  3. 阿里maven私服配置和作品上传
  4. 谷歌浏览器截取长图 (不用安装插件)
  5. 小米获取屏幕高度不准确-小米获取屏幕高度的兼容方案
  6. 生态环境之水污染网格化监测预警方案
  7. 微信小程序多音频场景处理
  8. 阿里巴巴2020春招暑期实习笔试题
  9. php怎么更换图片背景颜色,照片换底色红色变白色怎么变 怎么换照片底色
  10. 一款在Linux下运行Android应用的软件——xDroid