1、创建项目。

meven可以配置阿里云meven镜像

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

删除不需要的文件

pom文件

<dependencies>
<dependency>
<!-- springboot启动web项目依赖-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<!-- springboot单元测试用-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<!-- 使用meven构建项目插件-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

meven库地址:http://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/2.10.0

报错:SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”

解决:在pom文件添加依赖包:http://blog.csdn.net/liuxiangke0210/article/details/77892564

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
</dependency>

写一个类:

package com.milan.quick;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; @RestController
public class HelloController {
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String say(){
return "Hello Milan";
}
}

启动:

1、右键,run ,访问http://127.0.0.1:8080/hello  OK

2、进入pom所在目录,运行 mvn srping-boot:run

3、mvn install 编译程序 进入taget目录 java -jar xxx.jar启动

  自定义配置文件  java -jar xxx.jar --spring.profiles.active=

设置编码格式:http://blog.csdn.net/frankcheng5143/article/details/50779149

配置文件支持 properties yml 2种格式:

application.properties
-------------------------------
server.port=8081
# url前缀 这样访问需要127.0.0.1:8081/quick/hello 访问
server.context-path=/quick --------------------------------
application.yml server:
port: 8081
context-path: /quick

自定义配置 三个配置文件  application.yml,application-dev.yml,application-test.yml 可以用做环境切换

#application.yml
spring:
profiles:
active: dev #application-test.yml
server:
port: 8082
context-path: /quick
myname: milan
age: 24
content: "${myname},age:${age}"
girl:
name: ceshi_test
age: 19 #application-dev.yml
server:
port: 8080
context-path: /quick
myname: milan
age: 24
content: "${myname},age:${age}"
girl:
name: kaifa_name
age: 25

对应代码

// GirProperties.java
package com.milan.quick;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "girl")
public class GirProperties {
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private int age;
} #HelloController .java package com.milan.quick; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; @RestController
public class HelloController {
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String say(){
return myname+age+"content:"+content;
}
@RequestMapping(value = "/girl",method = RequestMethod.GET)
public String mygril(){
return mygirl.getName()+","+mygirl.getAge();
}
@Value("${myname}")
private String myname;
@Value("${age}")
private int age;
@Value("${content}")
private String content;
@Autowired
private GirProperties mygirl; }

注解汇总:

@Value("${myname}")

@Autowired 使用注解类

@Component
@ConfigurationProperties(prefix = "girl") //将注解注入到类中

自定义配置文件启动: java -jar xxx.jar --spring.profiles.active=test

Controller的使用

@Controller 处理http请求
@RestController 返回json。以前返回json需要@ResonseBosy+@Controller组合
@RequestMapping 配置url映射
@RequestMapping(value = {"/str","/getstr"}) //2个路径都会被映射。且不限制请求方法

获取参数中的值

@PathVariable //获取url中的数据
@RequestParam //获取请求参数的值
@GetMapping //组合注解
@RestController
@RequestMapping("/test")
public class Test1Controller {
//http://127.0.0.1:8080/test/s1/11
@RequestMapping(value = "/s1/{id}",method = RequestMethod.GET)
public String s1(@PathVariable("id") int id){
return "s1 id is "+id;
}
//http://127.0.0.1:8080/test/s2?id=12 获取 id
@RequestMapping(value = "/s2",method = RequestMethod.GET)
public String s2(@RequestParam("id") int id){
return "s2 id is "+id;
}
//http://127.0.0.1:8080/test/s3?id= 设置默认值
@GetMapping(value = "/s3")
public String s3(@RequestParam(value = "id",required = true,defaultValue="1") int id){
return "s3 id is "+id;
}
}

Spring-Data-Jpa

JPA:定义了一系列对象持久化的标准。是spring对hibernate的整合。

依赖增加:

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

配置文件增加

spring:
profiles:
active: dev
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://xxx:336/test
username: --
password: --
jpa:
hibernate:
ddl-auto: update
show-sql: true
package com.milan.quick;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface GirlRepository extends JpaRepository<Girl2,Integer>{
public List<Girl2> findByAge(Integer age);
}
// 对单表的增删改查
package com.milan.quick; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import javax.transaction.Transactional;
import java.util.List; @RestController
public class GirlController {
@Autowired
private GirlRepository girlRepository;
@GetMapping(value = "/girls")
public List<Girl2> getList(){
return girlRepository.findAll();
}
@PostMapping(value = "/girls")
public Girl2 Add(@RequestParam(value = "name") String name,@RequestParam(value = "age") Integer age){
Girl2 g = new Girl2();
g.setName(name);
g.setAge(age);
return girlRepository.save(g);
} @PostMapping(value = "/updategirl")
public Girl2 Update(@RequestParam(value = "name") String name,@RequestParam(value = "age") Integer age,@RequestParam(value = "id") Integer id){
Girl2 g = new Girl2();
g.setId(id);
g.setName(name);
g.setAge(age);
return girlRepository.save(g);
}
@DeleteMapping(value = "/girls")
public String Delete(@RequestParam(value = "id") Integer id){
girlRepository.delete(id);
return "true";
}
@GetMapping(value = "/girls/{id}")
public Girl2 Search(@PathVariable("id") Integer id){
return girlRepository.findOne(id);
}
@GetMapping(value = "/searchbyage/{age}")
public List<Girl2> SearchByAge(@PathVariable("age") Integer age){
return girlRepository.findByAge(age);
}
@Autowired
private GirlService girlService;
@GetMapping(value = "/tran")
public void service(){
girlService.insertTwo();
}
}
//事务
package com.milan.quick; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping; import javax.transaction.Transactional; @Service
public class GirlService {
@Autowired
private GirlRepository girlRepository;
@Transactional
public void insertTwo(){
Girl2 g = new Girl2();
g.setName("a");
g.setAge(1);
girlRepository.save(g);
Girl2 a = new Girl2();
a.setName("ba");
a.setAge(2);
girlRepository.save(a);
}
}
package com.milan.quick;

import javax.persistence.*;

@Entity
public class Girl2 {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Integer id;
private String name;
private int age; public Girl2() {
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} 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 boot 1的更多相关文章

  1. 玩转spring boot——快速开始

    开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...

  2. 【微框架】之一:从零开始,轻松搞定SpringCloud微框架系列--开山篇(spring boot 小demo)

    Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...

  3. 玩转spring boot——开篇

    很久没写博客了,而这一转眼就是7年.这段时间并不是我没学习东西,而是园友们的技术提高的非常快,这反而让我不知道该写些什么.我做程序已经有十几年之久了,可以说是彻彻底底的“程序老炮”,至于技术怎么样?我 ...

  4. 玩转spring boot——结合redis

    一.准备工作 下载redis的windows版zip包:https://github.com/MSOpenTech/redis/releases 运行redis-server.exe程序 出现黑色窗口 ...

  5. 玩转spring boot——AOP与表单验证

    AOP在大多数的情况下的应用场景是:日志和验证.至于AOP的理论知识我就不做赘述.而AOP的通知类型有好几种,今天的例子我只选一个有代表意义的“环绕通知”来演示. 一.AOP入门 修改“pom.xml ...

  6. 玩转spring boot——结合JPA入门

    参考官方例子:https://spring.io/guides/gs/accessing-data-jpa/ 接着上篇内容 一.小试牛刀 创建maven项目后,修改pom.xml文件 <proj ...

  7. 玩转spring boot——结合JPA事务

    接着上篇 一.准备工作 修改pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...

  8. 玩转spring boot——结合AngularJs和JDBC

    参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...

  9. 玩转spring boot——结合jQuery和AngularJs

    在上篇的基础上 准备工作: 修改pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...

  10. 玩转spring boot——MVC应用

    如何快速搭建一个MCV程序? 参照spring官方例子:https://spring.io/guides/gs/serving-web-content/ 一.spring mvc结合thymeleaf ...

随机推荐

  1. Alpha冲刺一 (8/10)

    前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10023260.html 作业博客:https://edu.cnblogs.com/campus ...

  2. Linux:root下的文件-anaconda-ks.cfg详解

    anaconda-ks.cfg详解 系统安装的时候生成的一个文件,通过这个文件可以修改成自动安装的脚本,用于自动安装同样配置的系统. 自动生成的启动文件anaconda# Kickstart file ...

  3. Android sdk 更新后编译不过,【Could not find com.android.sdklib.build.ApkBuilderMain】

    最近更新了Android sdk,发现编译不过了 解决方案: 进入 sdk/tool/lib/ 目录下,看看有没有 sdklib.jar 这个文件,如果没有看看有没有sdklib-25.*.*.jar ...

  4. CentOS 6.5系统安装编译安装MySQL 5.6详细过程

    点评:CentOS 6.5下通过yum安装的MySQL是5.1版的,比较老,那我们就通过源代码安装高版本的MySQL5.6.14.一:卸载旧版本使用下面的命令检查是否安装有MySQL Server r ...

  5. Panabit Live CD使用说明

    为了方便更多的用户实际使用Panabit,省去安装FreeBSD和Panabit等步骤,自2007年9月,即Panabit V7.09起,Panabit网站发布Panabit标准版安装包时,同步发布相 ...

  6. 修改numa和io调度优化mysql性能

    一.NUMA设置单机单实例,建议关闭NUMA,关闭的方法有三种:1.硬件层,在BIOS中设置关闭:2.OS内核,启动时设置numa=off:3.可以用numactl命令将内存分配策略修改为interl ...

  7. vs2017运行时修改代码Changes are not allowed while code is running.

    vs2017代码运行时不允许进行更改 工具->选项->调试->常规->启用编辑并继续不选择“启用编辑并继续”,这样就可以在调试时修改cs代码了.

  8. canvas设置阴影

    canvas设置阴影 属性 shadowOffsetX = float 阴影向右偏移量 shadowOffsetY = float 阴影向下偏移量 shadowBlur = float 阴影模糊效果 ...

  9. python 爬预警没解析前的

  10. 一个检测网页是否有日常链接的python脚本

    在大的互联网公司干技术的基本都会碰到测试.预发布.线上这种多套环境的,来实现测试和线上正式环境的隔离,这种情况下,就难免会碰到秀逗了把测试的链接发布到线上的情况,一般这种都是通过一些测试的检查工具来检 ...