DropWizard
http://www.dropwizard.io/0.9.2/docs/getting-started.html
Jetty for HTTP
Jersey for REST
官方说法 capable of doing 30,000-50,000 requests per second
定义依赖
<dependencies> <dependency> <groupId>io.dropwizard</groupId> <artifactId>dropwizard-core</artifactId> <version>${dropwizard.version}</version> </dependency> </dependencies>
实现
最核心的类Resource,定义路径和方法
import com.google.common.base.Optional; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; /** * Created by xuanzhui on 2016/3/21. */ @Path("/hello") @Produces(MediaType.APPLICATION_JSON) public class HelloWorldResource { @GET public String sayHello(@QueryParam("name") Optional<String> name) { return "Hello " + name.or("unknown"); } }
定义启动的类Application
import io.dropwizard.Application; import io.dropwizard.Configuration; import io.dropwizard.setup.Environment; /** * Created by xuanzhui on 2016/3/21. */ public class HelloWorldApplication extends Application<Configuration> { public static void main(String[] args) throws Exception { new HelloWorldApplication().run(new String[] { "server" }); } @Override public void run(Configuration configuration, Environment environment) throws Exception { environment.jersey().register(new HelloWorldResource()); } }
直接运行Application,即可通过 localhost:8080/hello 访问
打包
打包出一个jar,使其包含全部的依赖,最核心的是pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.xz</groupId> <artifactId>DropWizardSample</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <dropwizard.version>0.9.2</dropwizard.version> <jdk.version>1.8</jdk.version> </properties> <dependencies> <dependency> <groupId>io.dropwizard</groupId> <artifactId>dropwizard-core</artifactId> <version>${dropwizard.version}</version> </dependency> </dependencies> <build> <finalName>DropWizardSample</finalName> <plugins> <!-- Set a compiler level --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> <!-- Maven Shade Plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.3</version> <configuration> <createDependencyReducedPom>true</createDependencyReducedPom> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> </configuration> <executions> <!-- Run shade goal on package phase --> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <!-- important for RS --> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> <!-- add Main-Class to manifest file --> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>cn.xz.HelloWorldApplication</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
通过maven package生成fat/uber jar
运行java -jar DropWizardSample.jar,即可通过 localhost:8080/hello 访问
相关推荐
此应用程序包含一个可选 DB API 模块的示例。 提供的示例说明了可用的一些功能,并演示了如何在 Dropwizard 中使用这些功能。 此数据库示例由以下类组成: PersonDAO说明了在 Hibernate 的帮助下使用数据访问对象...
Dropwizard 是一个流行的 Java 框架,用于构建高性能、生产级别的 RESTful 服务。它集成了许多常用组件,如 Jersey(用于构建 REST API)、Jackson(用于 JSON 序列化和反序列化)、Jetty(作为 HTTP 服务器和...
免责声明像我在这里所做的那样在 REST 服务中返回图像数据并不是一个好主意。 它占用了应用服务器的内存和 IO 带宽。 最好将该任务委托给针对此类传输进行了优化的适当 Web 服务器。 *** 这是一个教育项目,不应在...
Hello Java是一个简单的Dropwizard应用程序,它通过/ hello-world资源向REST API调用者打招呼。 它作为一个示例,说明了如何使用Dropwizard框架构建应用程序,为其部署创建Docker容器,然后使用Github,Github ...
以下是一个简单的示例,展示了如何在Spring Boot中创建一个REST端点: ```java @RestController @RequestMapping("/currency") public class CurrencyController { @Autowired private CurrencyService ...
微服务车间需要以下内容: Java 1.8 玛文GIT 一个IDE,例如IntelliJ一般来说目的是要了解如何使用Dropwizard在Java中构建REST测试。 我们将开始构建留言簿,在第一个机会(今天)期间,我们将为该留言簿构建REST接口...
- Dropwizard是一个高度集成的Java框架,集合了多个成熟库,如Jetty(HTTP服务器)、Jersey(REST处理)、Jackson(JSON处理)等,提供快速的项目构建和启动。 - 其特点是模块化,允许应用程序保持小巧精干,减少...
这个PoC可能是一个简单的应用或者工具,用于验证特定的WebAPI接口或者功能在Java环境下的工作情况,可能涉及到API调用、数据交互、安全测试等方面。 描述 "测试WebAPI Java" 表明这是一个与Java相关的WebAPI测试...