寻找一个dropwizard的例子

时间:2012-11-12 14:41:29

标签: dropwizard

寻找一个我发现的dropwizard示例:

https://github.com/codahale/dropwizard/tree/master/dropwizard-example

但我对一个更完整的例子至少感兴趣:

  1. 像客户 - 帐户
  2. 这样的1:n关系
  3. 一个html gui代表至少与表格
  4. 对xml的全面支持
  5. 三分之二将是一个开始,我将获得“接受”。

7 个答案:

答案 0 :(得分:19)

看看我的一些Dropwzard projects

特别是MultiBit Merchant项目(管理员,商店和平台)将为您提供丰富的演示代码,展示如何在Dropwizard中完成工作。还有一个OpenID with Dropwizard的例子,它应该为新的应用程序提供一个很好的启动点。

根据麻省理工学院的许可,他们都是FOSS。

答案 1 :(得分:7)

沃尔夫冈,

这里是example Dropwizard application,其中使用了使用Hibernate的身份验证,配置和数据库访问。

在几个教程中讨论了该应用程序:

here是另一个例子,可以为经过身份验证的用户存储书签,并通过REST API访问数据。

祝你好运。

答案 2 :(得分:4)

这看起来也是一个很好的例子:https://github.com/spinscale/dropwizard-blog-sample

答案 3 :(得分:2)

我在Dropwizard XML Bundle项目中写了一个例子:

https://github.com/yunspace/dropwizard-xml/tree/master/dropwizard-xml-example

它可能与您正在寻找的最接近。它有:

  • 1:Pirate and Ships之间的N关系,存储在H2 db。
  • 使用带有验证的自定义JacksonMessageBodyProvider对XML进行完全CRUD支持。

通过Freemarker或Mustache模板添加HTML gui应该是非常简单的,并且在标准文档中有所涉及。

答案 4 :(得分:2)

希望dropwizard具有身份验证的好例子。

Dropwizard:身份验证,配置和HTTPS https://dzone.com/articles/getting-started-dropwizard-0

答案 5 :(得分:0)

你可以从Github尝试这个项目。

Dropwizard:CRUD操作,HTML视图,Healthcheck

https://github.com/HoldInArms/dropwizard-mssql-crud-example

答案 6 :(得分:-2)

按照以下步骤操作。

  1. 在pom文件中添加依赖项

    <dependencies>
    <dependency>
        <groupId>com.yammer.dropwizard</groupId>
        <artifactId>dropwizard-core</artifactId>
        <version>0.6.2</version>
    </dependency> 
    

  2. 创建配置类

    import com.yammer.dropwizard.config.Configuration;
    public class BlogConfiguration extends Configuration{
    
     }
    
  3. 创建服务类

       import com.yammer.dropwizard.Service;
       import com.yammer.dropwizard.config.Bootstrap;
       import com.yammer.dropwizard.config.Environment;
    
       public class BlogService extends Service<BlogConfiguration> {
    
       public static void main(String[] args) throws Exception {
       new BlogService().run(new String[] { "server",
       "C:\\LocalEnv\\Workspace\\dropwizarddemo\\configuration.yml" });
        }
    
        @Override
       public void initialize(Bootstrap<BlogConfiguration> bootstrap) {
       bootstrap.setName("blog");
       }
    
       @Override
        public void run(BlogConfiguration configuration, 
        Environment    environment) throws Exception {
        environment.addResource(new IndexResource());
        }
    
      }
    
  4. 注意:在当前目录

    中放置configuration.yml文件
           # HTTP-specific options.
           http:
    
           # The port on which the HTTP server listens for service requests.
           port: 8079
    
           # The port on which the HTTP server listens for administrative
           # requests.
           adminPort: 8179
    
          # Maximum number of threads.
          maxThreads: 100
    
          # Minimum number of thread to keep alive.
          minThreads: 10
    

    4。写索引资源。

         import java.util.ArrayList;
         import java.util.Arrays;
         import java.util.List;
         import javax.ws.rs.GET;
         import javax.ws.rs.Path;
         import javax.ws.rs.Produces;
         import javax.ws.rs.core.MediaType;
    
    
        import com.yammer.metrics.annotation.Timed;
    
        @Path("/")
        public class IndexResource {
    
       @GET
       @Produces(value = MediaType.APPLICATION_JSON)
       @Timed
       public List<Blog> index() {
        return Arrays.asList(new Blog("for Java Developers",
       "http://stackoverflow.com/questions/13345693/looking-for-a-dropwizard-
        example”));
       }
    
    
       @Path("/service")
    
    
       @GET
       @Produces(value = MediaType.APPLICATION_JSON)
       @Timed
       public List<Users> users() {
        List<Users> list = new ArrayList<Users>();
        list.add(new Users(25,"Sambhu","SA"));
        list.add(new Users(35,"Amit","VP"));
        list.add(new Users(45,"Sanket","AVP"));
    
    
        return list;
        }
    
    
      }
    
    1. 为博客和用户编写POJO,如

       public class Users {
      
      
       Integer id;
       String name;
       String designation;
      
       public Users(Integer id, String name, String desination){
      this.id=id;
      this.name=name;
      this.designation=desination;
      }
      
      public Integer getId() {
      return id;
      }
      public void setId(Integer id) {
      this.id = id;
      }
      public String getName() {
      return name;
      }
      public void setName(String name) {
      this.name = name;
      }
      public String getDesignation() {
      return designation;
      }
      public void setDesignation(String designation) {
      this.designation = designation;
      }
      @Override
      public String toString() {
      return "Users [id=" + id + ", name=" + name + ", designation="
              + designation + "]";
      }
      
    2. 运行BlogService,它将启动Jetty服务器并使用端口命中localhost        http://localhost:8079/