设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

Java开发者如何入门Node.js

2014-8-25 11:45| 发布者: joejoe0332| 查看: 4912| 评论: 0|原作者: gones945, daxiang, lwei, 陈昊LipsChan, wwwjjj, 0x0bject|来自: oschina

摘要: 首先, 我必须得承认,作为一个有着十多年开发经验的java开发者,我已经形成了解决绝大部分问题的固有套路,尽管它们很多时候显得笨重和繁琐。 比如说如果要读取一个文件,那应该就是初始化一个BufferedReader 实例 ...


第三步:创建DBConnection类

  到这一步,我们已经建立好项目并且我们的pom.xml文件已经包含了MongoDB数据库的驱动依赖,记得要确保所需要的驱动已经被打包好在我们的应用里面。下一件事我们就要创建一个类用来管理数据库的连接。创建一个新的文件命名为 DBConneection.java,把这个文件放置到 /src/main/java/com/strongloop/data 目录里面,然后再这个文件里面加入下面的代码:


  注意:要确保你安装MongoDB数据库配置好适当的连接授权细节信息!


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.strongloop.data;
  
import java.net.UnknownHostException;
  
import javax.annotation.PostConstruct;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
  
import com.mongodb.DB;
import com.mongodb.Mongo;
  
@Named
@ApplicationScoped
public class DBConnection {
  
   private DB mongoDB;
  
   public DBConnection() {
       super();
   }
  
   @PostConstruct
   public void afterCreate() {
       String mongoHost = "127.0.0.1"
       String mongoPort = "27001"
       String mongoUser = "strongloop;
       String mongoPassword = "rocks";
       String mongoDBName = "restexample";
       int port = Integer.decode(mongoPort);
  
       Mongo mongo = null;
       try {
           mongo = new Mongo(mongoHost, port);
       catch (UnknownHostException e) {
           System.out.println("Couldn't connect to MongoDB: " + e.getMessage()
                   " :: " + e.getClass());
       }
  
       mongoDB = mongo.getDB(mongoDBName);
  
       if (mongoDB.authenticate(mongoUser, mongoPassword.toCharArray()) == false) {
           System.out.println("Failed to authenticate DB ");
       }
  
   }
  
   public DB getDB() {
       return mongoDB;
   }
  
}


第四步:把数据导入到MongoDB中(mmmm啤酒)

在我们的项目中,我们想要加载所有名称为Pabst的啤酒列表。如果你不熟悉啤酒行业,你可以试下Pabst Brewing公司生产的美式淡啤。这些啤酒上面带有蓝绶带和柯尔特{敏感词}图案,他们包含所有的麦芽糖饮料种类。

  首先你需要下载一个json文件,里面包含需要返回的所有数据。你可以用下面的URL来实现这点:

https://dl.dropboxusercontent.com/u/72466829/beers.json


  下载结束后,使用mongoimport命令把它导入到数据库中,命令如下:

1
$ mongoimport --jsonArray -d yourDBName -c beers --type json --file /tmp/beers.json -h yourMongoHost --port yourMongoPort -u yourMongoUsername -p yourMongoPassword


  你可以看到如下结果:

1
2
3
connected to: 127.0.0.1:27017
Tue Jun 10 20:09:55.436 check 9 24
Tue Jun 10 20:09:55.437 imported 24 objects


第5步: 创建Beer模型对象

  我们已经创建了一个数据库连接类并且已经把啤酒信息载入到MongoDB数据库里了,是时候创建一个模型对象来控制我们的啤酒信息了。创建一个新文件,名为Beer.java并把它放到/src/main/java/com/strongloop/data目录下。创建好该文件后,在其中添加如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.strongloop.data;
  
public class Beer {
   private String id;
   private String name;
   private String description;
  
   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;
   }
   public String getDescription() {
       return description;
   }
   public void setDescription(String description) {
       this.description = description;
   }
}

  注意: 提供好的JSON文件中包含了更多我们将会使用到的信息,所以可以找出来看看,并向其中添加一些额外的功能来拓宽你的学习经验。


第6步: 创建REST服务

  猜猜看该干什么了?不错,我们终于准备好要创建基于REST的web服务了,它使我们可以获取到上一个步骤当中载入进来的啤酒信息。为此,我们需要创建一个新的名为BeerWS.java的文件,并把它放到/src/main/java/com/strongloop/webservice目录下。创建好之后,添加下列代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package com.strongloop.webservice;
  
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import com.strongloop.data.DBConnection;
import com.strongloop.data.Beer;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
  
@RequestScoped
@Path("/beers")
public class BeerWS {
  
   @Inject
   private DBConnection dbConnection;
  
   private DBCollection getBeerCollection() {
       DB db = dbConnection.getDB();
       DBCollection beerCollection = db.getCollection("beers");
       return beerCollection;
   }
  
   private Beer populateBeerInformation(DBObject dataValue) {
       Beer theBeer = new Beer();
       theBeer.setName(dataValue.get("name"));
       theBeer.setDescription(dataValue.get("name"));
       theBeer.setId(dataValue.get("_id").toString());
  
       return theBeer;
   }
  
   // 获取所有啤酒
   @GET()
   @Produces("application/json")
   public List<Beer> getAllBeers() {
       ArrayList<Beer> allBeersList = new ArrayList<Beer>();
  
       DBCollection beers = this.getBeerCollection();
       DBCursor cursor = beers.find();
       try {
           while (cursor.hasNext()) {
               allBeersList.add(this.populateBeerInformation(cursor.next()));
           }
       finally {
           cursor.close();
       }
  
       return allBeersList;
   }
}



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部