Spring Boot服务组件,服务组件是包含@Service 注释的类文件。这些类文件用于编写不同层的业务逻辑,与@RestController 类文件分开
创建服务组件类文件的逻辑如下所示 –
public interface ProductService { }
使用@Service 注释实现接口的类如下所示 –
@Service public class ProductServiceImpl implements ProductService { }
请注意,在本教程中,我们使用产品服务 API来存储、检索、更新和删除产品。我们在@RestController 类文件本身中编写了业务逻辑。现在,我们要将业务逻辑代码从控制器转移到服务组件。
您可以使用如下所示的代码创建一个包含添加、编辑、获取和删除方法的接口 –
package net.zuze.demo.service; import java.util.Collection; import net.zuze.demo.model.Product; public interface ProductService { public abstract void createProduct(Product product); public abstract void updateProduct(String id, Product product); public abstract void deleteProduct(String id); public abstract CollectiongetProducts(); }
以下代码将让您创建一个类,该类实现带有 @Service 注释的 ProductService 接口,并编写业务逻辑来存储、检索、删除和更新产品。
package net.zuze.demo.service; import java.util.Collection; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Service; import net.zuze.demo.model.Product; @Service public class ProductServiceImpl implements ProductService { private static MapproductRepo = new HashMap<>(); static { Product honey = new Product(); honey.setId("1"); honey.setName("Honey"); productRepo.put(honey.getId(), honey); Product almond = new Product(); almond.setId("2"); almond.setName("Almond"); productRepo.put(almond.getId(), almond); } @Override public void createProduct(Product product) { productRepo.put(product.getId(), product); } @Override public void updateProduct(String id, Product product) { productRepo.remove(id); product.setId(id); productRepo.put(id, product); } @Override public void deleteProduct(String id) { productRepo.remove(id); } @Override public Collection getProducts() { return productRepo.values(); } }
这里的代码显示了 Rest Controller 类文件,这里我们 @Autowired ProductService 接口并调用了方法。
package net.zuze.demo.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import net.zuze.demo.model.Product; import net.zuze.demo.service.ProductService; @RestController public class ProductServiceController { @Autowired ProductService productService; @RequestMapping(value = "/products") public ResponseEntity
POJO 类的代码 – Product.java 如下所示 –
package net.zuze.demo.model; public class Product { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
下面给出了一个主要的 Spring Boot 应用程序 –
package net.zuze.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
Maven 构建的代码 – pom.xml 如下所示 –
4.0.0 net.zuze demo 0.0.1-SNAPSHOT jar demo Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 1.5.8.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin
Gradle 构建的代码 – build.gradle 如下所示 –
buildscript { ext { springBootVersion = '1.5.8.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' group = 'net.zuze' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter-web') testCompile('org.springframework.boot:spring-boot-starter-test') }
您可以创建一个可执行 JAR 文件,并使用下面给出的 Maven 或 Gradle 命令运行 Spring Boot 应用程序 –
对于 Maven,使用如下所示的命令 –
mvn clean install
“BUILD SUCCESS”后,可以在目标目录下找到JAR文件。
对于 Gradle,您可以使用如下所示的命令 –
gradle clean build
“BUILD SUCCESSFUL”后,您可以在build/libs 目录下找到JAR 文件。
使用下面给出的命令运行 JAR 文件 –
java –jar
现在,应用程序已在 Tomcat 端口 8080 上启动