springcloud笔记

springboot

一、配置文件的编写

默认在resource文件夹下为

application.properties文件
建议修改为:

application.yml文件名

在里面添加

    server:

        port: 8080

        context-path:/hello

 设置项目的访问路径与项目的访问端口

在配置文件里面添加属性实现  在实体类中进行通过注解的方式进行配置

@Value("${value}")

在配置文件里面的编写方式为:

value: hello  注意在名字和值之间需要有一个空格

也可以在配置文件中注入一个对象的方式实现属性的注入

编写一个实体类  在类上添加注解

@Component

@ConfigurationProperties(prefix = "hello")

在实体类中添加在配置文件中指定名字的成员变量  配置文件中的值会自动的注入到实体类中

在controller层上面添加注解:
@EnableAutoConfiguration

@Controller

两个注解实现加载该类并且将自动注入属性

二、对数据库的配置

 JPA :Java Persistence API   就是spring对hibernate的整合

在application.yml配置文件中添加

datasource:
   driver-class-name: 数据库驱动 com.mysql.jdbc.Driver

   url: jdbc:mysql://127.0.0.1:3306/dbgirl

   username:

   password:

jpa:

    hibernate:

        ddl-auto: create表示每次程序重启的时候创建新表  覆盖之前的表

        update: 表示没表的时候就创建  有数据就不进行创建表

        none 什么都不做

        valiedate 将实体类与表进行比较  如果不一致就报错

    show-sql: true

编写实体类:

提供成员变量   使用注解实现创建表

在类上添加注解:@Entity

 

在成员变量上添加注解
@Id  表示为主键

@GeneratedValue表示生层的策略

@ Column

从定义可以看出,@Column注解一共有10个属性,这10个属性均为可选属性,各属性含义分别如下:

name
name属性定义了被标注字段在数据库表中所对应字段的名称;

unique
unique属性表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可以使用该标记,也可以使用@Table标记中的@UniqueConstraint。

nullable
nullable属性表示该字段是否可以为null值,默认为true。

insertable
insertable属性表示在使用“INSERT”脚本插入数据时,是否需要插入该字段的值。

updatable
updatable属性表示在使用“UPDATE”脚本插入数据时,是否需要更新该字段的值。insertable和updatable属性一般多用于只读的属性,例如主键和外键等。这些字段的值通常是自动生成的。

columnDefinition
columnDefinition属性表示创建表时,该字段创建的SQL语句,一般用于通过Entity生成表定义时使用。(也就是说,如果DB中表已经建好,该属性没有必要使用。)

table
table属性定义了包含当前字段的表名。

length
length属性表示字段的长度,当字段的类型为varchar时,该属性才有效,默认为255个字符。

precision和scale
precision属性和scale属性表示精度,当字段类型为double时,precision表示数值的总长度,scale表示小数点所占的位数。

来源: http://blog.csdn.net/zjm_love/article/details/50417710

 

@Table
name:指定表的名称
catalog:指定数据库名称
schema:指定数据库的用户名

 

 

首先编写一个GirlController 在类上添加 @RestController注解

在方法上添加注解 @GetMapping实现为get方法

编写类GirlRepository  继承  JpaRepository<Girl,Integer> 父类

JpaRepository中有findAll的方法

@Autowired注解注入对象
通过post的方式新增一个女生

方法为save()

@PostMapping

通过@RequestParam注解实现传递参数

可以设置RequestParam注解的@RequestParam(value="a" ,required = false,defauleValue = "2" )

设置默认值 是否必须以及默认值

当路径上存在多个同名的参数时,在后台获取的时候,多个参数之间用逗号隔开,显示在一个结果中。

在路径上添加参数/girl/{id}

在方法中添加@PathVariable注解实现参数在在路径上进行拼接

调用 findOne的API实现根据id进行查找

方法上添加@PutMapping

更新数据的方法也是  save  

删除方法的注解为DeleteMapping

方法为delete

在查询的时候希望指定某一个属性进行查询

在GirlRepository中添加自定义的方法 方法名字为findByAge   名字的命名规范

在springboot中添加事务管理的方法

在方法上添加注解@Transactional

新建一个项目之后会产生一个类在类上添加注解

@SpringBootApplication

在里面有一个main方法里面的代码为

SpringApplication.run(GirlApplication.class,args);

二. 在配置数据库时需要注意的事情

1、首先在pom.xml文件中需要引入:

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

这样的依赖

2、在yml配置文件中的数据库配置应该写成:

spring:

    datasource:

    .....

就是说在配置datasource之前需要加上spring的标识

但是不要把注解在类中的值前面加spring那样是不对的

3、在用hibernate生成表时,需要注意表主键的格式为Integer

如果是别的类型就不能自增长

会产生

Incorrect column specifier for column 'personid'

的错误。

4、如果不能引入正确的约束就会报找不到类的错误

Cannot determine embedded database driver class for database type NON

三、 jpaAPI实现简单的增删改查

1、创建接口PersonRepository extends JpaRepository

通过注入PersonRepository 进行调用API对数据库进行操作

四、在eclipse中添加springboot插件

new Spring Starter Project  项目  就是新的springboot项目

五、Spring Boot由jar包转成war包

在新建一个项目的时候  会选择jar还是war  开始练习的时候会选择使用jar包  如何将jar包转换为war包?

建议在开发的时候建立以jar包启动的web项目,启动效率更快,此时如果想发布成war包形式部署,做如下操作:

1.修改pom.xml

Xml代码  

  1. <packaging>jar</packaging>  

修改成

Xml代码  

  1. <packaging>war</packaging>  

2.新增如下到pom.xml文件中

Xml代码  

  1. <dependency>  
  2.         <groupId>org.springframework.boot</groupId>  
  3.         <artifactId>spring-boot-starter-tomcat</artifactId>  
  4.         <scope>provided</scope>  
  5.     </dependency>  

3.新增ServletInitializer类

Java代码  

  1. import org.springframework.boot.builder.SpringApplicationBuilder;  
  2. import org.springframework.boot.context.web.SpringBootServletInitializer;  
  3.   
  4. public class ServletInitializer extends SpringBootServletInitializer {  
  5.   
  6.     @Override  
  7.     protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {  
  8.         return application.sources(Application.class);  
  9.     }  
  10.   
  11. }  

    来源: http://wiselyman.iteye.com/blog/2145442

在新建一个项目的时候会以jar包的形式进行创建,因为在这里springboot是结合maven进行管理的,所以在这里创建的项目在创建的时候需要选择它的依赖。

依赖的位置为你的maven库的位置。在pom.xml 文件中就和往常的maven项目一样的。引入约束。

 

springCloud

一、springCloud组件

1、Eureka:服务注册中心,类似于zookeeper基于心跳检测每一个微服务状态并提供服务发现的注册中心。

2、Ribbon:客户端负载均衡,对于Eureka来说,所有注册进入的springboot微服务都属于客户端,当客户端相互调用时,需要进行判断被调用方是否存活,如果有多个被调用方,进行请求的分发与负载均衡。这里还提供了超时与重试机制。

3、Hystrix:当微服务之间相互调用如果报错了,会导致调用一直处于阻塞的状态,所以为了防止阻塞,使用熔断器的概念,当调用超时或报错后,会进行请求的转发,调用一个事先写好的报错后的错误处理逻辑,返回预设的报错结果。保证服务之前调用的流畅,不会阻塞。

4、Feign:将Ribbon与Hystrix结合起来, 从RestTemplate new对象的方式进行调用改为封装成接口,restful形式进行调用,并提供了继承的机制。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值