SpringCloud之基础实例之服务端

版权声明:转载请写明出处 https://blog.csdn.net/huijiangu4621/article/details/84135407

本文章总结摘录的《Spring Cloud与Docker微服务架构实战》,如果觉得文章对您有所帮助想有所精进,请购买正版书籍深入研究

书中所使用的H2数据库的安装详见链接,流程十分清晰 H2数据库安装详解

首先点击链接查看自己的spring boot对应的spring cloud的版本 链接

引入pom依赖(本人使用的是Spring Boot 2.0.5.RELEASE于是选择的是Finchley.RELEASE)

	<parent>
		<groupId> org.springframework.boot </groupId>
		<artifactId>
		spring-boot-starter-parent </artifactId>
		<version> 2.0.5.RELEASE </version>
	</parent>
	
	<properties>
		<project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding>
		<java.version> 1.8 </java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.16.20</version>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Finchley.RELEASE</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<fork>true</fork>
				</configuration>
			</plugin>
		</plugins>
	</build>

准备建表语句,创建user.sql

drop table user if exists;
create table user (id bigint generated by default as identity,
					username varchar(40),
					name varchar(20),
					age int(3),
					balance decimal(10,2),
					primary key(id));

准备数据,创建data.sql

insert into user (id, username, name, age, balance) values(1,'account1','Etoak1',20,100.00);
insert into user (id, username, name, age, balance) values(2,'account2','Etoak2',28,180.00);
insert into user (id, username, name, age, balance) values(3,'account3','Etoak3',32,280.00);

创建用户实体类(这里使用了Lombok的@Data)

package com.etoak.crazy.entity.h2;

import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

import lombok.Data;

@Entity
@Data
/*
 * @Data相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解
 * @ToString:用在类上,可以自动覆写toString方法
 * @EqualsAndHashCode:用在类上,自动生成equals方法和hashCode方法
 * @RequiredArgsConstructor:用在类上,自动生成无参构造和使用所有参数的构造函数
 * */
public class User {

	@Id
	@GeneratedValue(strategy= GenerationType.AUTO)
	private Long id;

	@Column
	private String username;
	@Column
	private String name;
	@Column
	private Integer age;
	@Column
	private BigDecimal balance;
}

创建Dao

package com.etoak.crazy.dao;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import com.etoak.crazy.entity.h2.User;


@Repository
public interface H2UserRepository extends JpaRepository<User,Long>{

}

创建Controller

package com.etoak.crazy.controller.h2;


import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import com.etoak.crazy.dao.H2UserRepository;
import com.etoak.crazy.entity.h2.User;

@RestController
public class H2UserController {
	
	@Autowired
	private H2UserRepository userRepository;
	
	@GetMapping("/{id}")
	public Optional<User> findById(@PathVariable Long id) {
		 Optional<User> findOne = this.userRepository.findById(id);
		return findOne;
	}
}

编写启动类

package com.etoak;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;


@SpringBootApplication
public class App extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(App.class);
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(App.class, args);
    }
}

编写配置文件application.properties

server.port=8000
spring.jpa.generate-ddl=false
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=none
#指定数据源类型
spring.datasource.platform=h2
##指定h2数据库的建表脚本
spring.datasource.schema=classpath:user.sql
##指定h2数据库的数据脚本
spring.datasource.data=classpath:data.sql

#配置日志级别,让hibernate打印执行的SQL
logging.level.root=INFO
logging.level.org.hibernate=INFO
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
logging.level.org.hibernate.type.descriptor.sql.BasicExtractor=TRACE

启动启动类,访问http://localhost:8000/1测试
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/huijiangu4621/article/details/84135407