2 小时学会 springboot ( 附实例讲解 )

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

一.什么是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 @廖师兄
 

转自方志朋的博客:
https://www.fangzhipeng.com/springboot/2017/05/25/sb25-2hour.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

管理拾穗:四眼原则

日前听到一位现在服务于一家德国公司的朋友提及他们公司里的主管有一个四眼原则(Four eyes principle)&#xff0c;意思是如果有一份对外的重要文件要发出前&#xff0c;要经过两个人(四个眼睛)看过&#xff0c;确定内容无误之后&#xff0c;再发出。我也曾经在一家国际知名的德…

CEF编译 执行gn args out\Release_GN_x86异常

gn args out\Debug_GN_x86 用来配置编译参数&#xff0c;执行gn args out\Release_GN_x86时异常&#xff1a; Toolchain is out of date. Run "gclient runhooks" to update the toolchain, or set DEPOT_TOOLS_WIN_TOOLCHAIN0 to use the locally installed toolcha…

成功者刻骨铭心的一句话

您知道吗&#xff1f;在这个世界上有许多名人和飞黄腾达的企业家。他们的成功除了靠自己的努力外&#xff0c;还靠来自他人的启发&#xff0c;改变了他们的观点&#xff0c;因而攀上了人生的巅峰。就像美国著名顾问公司盖洛普&#xff08;Gallup&#xff09;的CEO吉姆‧克利夫顿…

js中的鼠标右键点击事件

https://www.cnblogs.com/sea-stream/p/9638870.html window.onload function(){//去掉默认的contextmenu事件&#xff0c;否则会和右键事件同时出现。document.oncontextmenu function(e){e.preventDefault();};document.getElementById("test").onmousedown fun…

拜托!面试请不要再问我 Spring Cloud 底层原理 ...

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 >出处&#xff1a; >https://www.fangzhipeng.com > 本文出自[方志朋的博客](http://blog.csdn.net/forezp) 本文为转载文章&…

Django ORM 知识点总结

Query是如何工作的 Django QuerySet是懒执行的&#xff0c;只有访问到对应数据的时候&#xff0c;才会去访问数据库。另外如果你再次读取查询到的数据&#xff0c;将不会触发数据库的访问&#xff0c;而是直接从缓存获取。 比如 # 这里不会访问数据库&#xff0c;origins只是一…

22天养成好习惯,一年后脱胎换骨!

第一个习惯&#xff1a; 每天对镜子的自己微笑。 亲爱的&#xff0c;如果你都不喜欢自己的话&#xff0c;怎么可能指望别人喜欢你&#xff1f; 第二个习惯&#xff1a; 每天用凉水洗脸。 凉水洗脸&#xff0c;皮肤健康&#xff1b;热水洗脚&#xff0c;强似吃药。 第三个习…

springCloud - 第1篇 - 服务的注册 Eureka

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 PS&#xff1a;这个系列不定时更新&#xff0c;只是个人的学习分享&#xff0c; 内容全程参考书目&#xff1a; 《Spring Cloud 与 Do…

js中的Map对象

var map new Map();//map对象中添加键值对map.set("name","tom");map.set("age",35);map.set("sex",0);//获取map对象中的值map.get("name")//tom//遍历map 函数中第一个参数是value&#xff0c;第二个参数是keymap.forEa…

十六个字 一辈子学不完

1、道歉&#xff1a;并不总意味着你是错的&#xff0c;它只是意味着你更珍惜你们之间的关系。 2、相爱&#xff1a;不是寻找一个完美的人&#xff0c;而是学会用完美的眼光&#xff0c;去欣赏一个不完美的人。 3、专一&#xff1a;不是一辈子只喜欢一个人&#xff0c;…

解决:com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column ‘ip‘ at row 1

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 报错&#xff1a; SQL []; Data truncation: Data too long for column ip at row 1; nested exception is com.mysql.jdbc.MysqlDa…

Xampp配置本地域名及常见错误解决

Xampp配置本地域名及常见错误解决 本地域名配置1、计算机-->C盘-->Windows-->System32-->drivers-->etc-->hosts127.0.0.1 localhost//设置你要配置的本地域名2、计算机-->XAMPP-->apache-->conf-->extra-->httpd-vhosts.conf<Virtu…

单元测试写法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 好像很早前写过的&#xff1a; package com.xxx.dubbo;import com.xxx.app.xx.xx.dao.MarketingRuleMapper; import com.xxx.app.xx.xx…

刷新网页跳转锚点

html中&#xff1a; <a name"miao" > <b>{{ $v->department_name }}</b></a> js跳转锚点&#xff1a; window.οnlοadfunction(){location.hashmiao;} 转载于:https://www.cnblogs.com/best-coder/p/11550177.html

java - 通用 CRUD(增、删、改、查)工具类,代码高效复用

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 基本 CRUD 方法实现&#xff1a; package com.xxx.xxx.ls.xxx.utils;import com.alibaba.fastjson.JSON; import com.google.common…

CSS文本溢出显示省略号

项目中常常有这种需要我们对溢出文本进行"..."显示的操作&#xff0c;单行多行的情况都有&#xff08;具体几行得看设计师心情了&#xff09;&#xff0c;这篇随笔是我个人对这种情况解决办法的归纳&#xff0c;欢迎各路英雄指教。 单行 语法 overflow:hidden;text-o…

@JsonFormat Date类型时间 格式化 注解 使用

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 JsonFormat注解是一个时间格式化注解&#xff0c;比如我们存储在mysql中的数据是date类型的&#xff0c;当我们读取出来封装在实体类中的…

好用的在线工具

1.在线工具 http://tool.oschina.net/ 网站里面包含很多强大的工具&#xff0c;代码对比&#xff0c;正则表达式在线验证&#xff0c;各种语言的语法对照表等。 2.so JSON在线工具 https://www.sojson.com/ 这个网站可能更加偏向前端一些吧&#xff0c;里面有一些加密解密&…

解决 Idea 卡在 Resolving Maven dependencies ...

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Idea卡在Resolving Maven dependencies的解决方案 在Reimpot All Maven Porjects时, 如果项目过大, maven依赖过多, 会直接卡在Resolvin…

VS Code (visual studio code) VSC 编辑器(微软出品,js开发的编辑器)

一.选择合适的编辑器&#xff0c;提高编程效率 代码编辑器的选择&#xff0c;可以说是开发者社区中一个经久不衰的话题&#xff0c;现今编辑器的数量数不胜数&#xff0c;vim&#xff0c;sublime Text,Emacs,Atom等等&#xff0c;那么对于一个开发者而言&#xff0c;挑选一个合…