spring boot 1
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的更多相关文章
- 玩转spring boot——快速开始
开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...
- 【微框架】之一:从零开始,轻松搞定SpringCloud微框架系列--开山篇(spring boot 小demo)
Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...
- 玩转spring boot——开篇
很久没写博客了,而这一转眼就是7年.这段时间并不是我没学习东西,而是园友们的技术提高的非常快,这反而让我不知道该写些什么.我做程序已经有十几年之久了,可以说是彻彻底底的“程序老炮”,至于技术怎么样?我 ...
- 玩转spring boot——结合redis
一.准备工作 下载redis的windows版zip包:https://github.com/MSOpenTech/redis/releases 运行redis-server.exe程序 出现黑色窗口 ...
- 玩转spring boot——AOP与表单验证
AOP在大多数的情况下的应用场景是:日志和验证.至于AOP的理论知识我就不做赘述.而AOP的通知类型有好几种,今天的例子我只选一个有代表意义的“环绕通知”来演示. 一.AOP入门 修改“pom.xml ...
- 玩转spring boot——结合JPA入门
参考官方例子:https://spring.io/guides/gs/accessing-data-jpa/ 接着上篇内容 一.小试牛刀 创建maven项目后,修改pom.xml文件 <proj ...
- 玩转spring boot——结合JPA事务
接着上篇 一.准备工作 修改pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...
- 玩转spring boot——结合AngularJs和JDBC
参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...
- 玩转spring boot——结合jQuery和AngularJs
在上篇的基础上 准备工作: 修改pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...
- 玩转spring boot——MVC应用
如何快速搭建一个MCV程序? 参照spring官方例子:https://spring.io/guides/gs/serving-web-content/ 一.spring mvc结合thymeleaf ...
随机推荐
- zoj 1828 Fibonacci Numbers
A Fibonacci sequence is calculated by adding the previous two members of the sequence, with the firs ...
- 从 FastAdmin 项目上学了什么?
从 FastAdmin 项目上学了什么? 接触到 FastAdmin 我学了好多,自己记录一下 Xmind git 系统学习了 Javascript jQuery 重新开始玩 ThinkPHP 开始记 ...
- postgresql双机热备、高可用方案(采用pacemaker+corosync实现)
http://blog.csdn.net/qguanri/article/details/51151974 需求描述 我们有两台centos7的数据库主机A.B.要对A.B实现双机热备,A作为数据库m ...
- zipkin:和springcloud集成过程记录
发现全是springcloudapp的名称,然后是springcloudapp(http://localhost:8080/hello/tom)工程单独调用并没有通知zipkin: 原来是因为rest ...
- CF gym101933 K King's Colors——二项式反演
题目:http://codeforces.com/gym/101933/problem/K 每个点只要和父亲不同色就行.所以 “至多 i 种颜色” 的方案数就是 i * ( i-1 )n-1 . #i ...
- C++ Primer第五版答案
Downloads Download the source files for GCC 4.7.0. Download the source code files for MS Visual Stud ...
- 转-在Mac OS上搭建Python的开发环境
在Mac OS上搭建Python的开发环境 本文转载自:http://www.jb51.net/article/76931.htm 一. 安装python mac系统其实自带了一个python的执 ...
- maven下载源代码,中文注释乱码的处理方法
通过maven下载的源码,如果有注释是中文的话,一般会有乱码问题,解决办法如下: Window -> Preferences -> Content Types -> Text -&g ...
- 最小化安装CentOS7,没有ifconfig命令---yum search command_name搜索未知包名
新安装的CentOS7系统,想查询ip的时候,发现没有ifconfig这个命令: -bash: ifconfig: 未找到命令 yum安装: 没有可用软件包 ifconfig 既然知道命令,搜索一下命 ...
- gSOAP:C++编写服务器端
1.编写头文件cal.h: //gsoap ns service name: calc //gsoap ns service style: rpc //gsoap ns service encodin ...