springboot基础学习

 

SpringBoot-->SpirngCloud-->微服务:学习springboot是为微服务打定基础

注:springboot只能支持jdk1.8以上

 

1,自定义属性配置:

1.1 不同环境使用不同配置:

不同配置可以使用不同的启动方式,达到同步运行;例如

1.2 注解的使用

  1.2.1 实现配置内容的注入:

  @Value("${cupSize}")

  1.2.2 随着配置文件的增加,需要对配置进行分组和注入

  @Component
  @ConfigurationProperties(prefix = "girl")

 

 

2,Controller的使用:主要用来接收用户端的请求

@Controller  处理http请求;给浏览器的访问权限(注解到Controller类上;需要thymeleaf模板;不推荐使用)

@RestController  Spring4之后新加的注解,返回json;等同于@ResponseBody配合@Controller。(注解到Controller类上;用于前后端分离,提供rest接口给前端)

 

@RequestMapping 配置url映射; 需要用户通过某个url访问到我们的方法(注解到类/方法上)

注:

@RequestMapping(value = "/query",method = RequestMethod.GET)
RequestMethod设置请求方式,如果不写,默认get/post都可以请求.

@GetMapping / @PostMapping 组合注解(简化请求注解的书写--注解到方法上)

//    @RequestMapping(value = "/say4",method = RequestMethod.GET)
// @PostMapping(value="/say4")
@GetMapping(value="/say4") // http://localhost:8081/hi/say4
public String test4(@RequestParam(value = "id",required = false,defaultValue = "0") Integer myId){
return "id:" + myId;
}

@PathVariable 获取url中的数据

// 获取url中的数据   http://localhost:8081/hi/say/23
@RequestMapping(value = "/say/{id}",method = RequestMethod.GET)
public String say(@PathVariable("id") Integer id){
  return "id:" + id;
}

@RequestParam 获取请求参数的值

// 获取url中的数据  // http://localhost:8081/hi/say2?id=23

@RequestMapping(value = "/say2",method = RequestMethod.GET) 
public String test2(@RequestParam("id") Integer myId){   // @RequestParam("id")和url中的id一致
  return "id:" + myId;
}

注:可以给请求参数设置一个默认值,url中不用传参

@RequestMapping(value = "/say3",method = RequestMethod.GET)   // http://localhost:8081/hi/say3

public String test3(@RequestParam(value = "id",required = false,defaultValue = "0") Integer myId){

  return "id:" + myId;

}

 

 

3,使用spirng-data-jpa:

JPA是Java Persistence API(Java持久层API),是JDK 5.0注解或XML,描述 对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
目前实现这一规范的产品有:Hibernate、TopLink
spirng-data-jpa:Spring和Hibernate的整合

1、在pom.xml中添加spring-data-jpa和mysql的依赖

2、配置数据库的连接

3、创建实体类,映射数据表中的字段

4、编写控制层,请求接口操作数据库

 

4,事务操作:

 springboot项目中,@transactional 无效

问题:
springboot项目,依然是使用jpa、Hibernate来操作mysql,涉及到数据库的操作,就少不了事务。写了一个接口,
用来测试@Transaction注解的作用,发现没有效果
分析:
在项目启动时候,看到Hibernate: create table hibernate_sequence (next_val bigint) engine=MyISAM,
说明是MyISAM引擎,由此我们也就很容易想到MyISAM与InnoDB之间的区别
解决:
发现Hibernate默认创建的表是MyISAM引擎,MyISAM引擎不支持事务操作,所以@Transaction注解不会起作用;
所以我们要做的就是,将数据库引擎改为InnoDB
1.查看表使用的引擎:show table status from db_name where name='table_name';
2.修改表引擎方法: alter table table_name engine=innodb;

 


 

 首先,创建一个springboot项目:

 

springBoot启动:1,可以在IDEA中start,2,也可以在dos命令行进行启动(在项目路径下操作)

2.1;mvn spring-boot:run

 

   

2.2;先编译:mvn install;  进到target目录下:cd target;  执行.jar文件:java -jar ***.jar

  备注:dir 显示当前目录下所有文件;dos窗口关闭,Tomcat停止运行。

 

posted on 2018-04-13 12:31  荆棘Study  阅读(161)  评论(0编辑  收藏  举报