当前位置: 首页 > news >正文

深圳罗湖网站制作网络挣钱

深圳罗湖网站制作,网络挣钱,cn域名网站,wordpress官网的文档在本文中#xff0c;我将介绍如何从无状态Java EE应用程序连接到MongoDB#xff0c;以利用与MongoDB Java驱动程序提供的数据库的内置连接池。 如果您开发的REST API对MongoDB执行操作#xff0c;则可能是这种情况。 获取Java MongoDb驱动程序 要将Java连接到MongoDB#… 在本文中我将介绍如何从无状态Java EE应用程序连接到MongoDB以利用与MongoDB Java驱动程序提供的数据库的内置连接池。 如果您开发的REST API对MongoDB执行操作则可能是这种情况。 获取Java MongoDb驱动程序 要将Java连接到MongoDB可以使用Java MongoDB Driver 。 如果使用Maven构建应用程序则可以将依赖项添加到pom.xml文件中 MongoDB Java驱动程序依赖性 org.mongodbmongo-java-driver2.12.3 该驱动程序为MongoDB客户端com.mongodb.MongoClient提供了内部池。 MongoClient类被设计为线程安全的并在线程之间共享。 对于大多数应用程序整个JVM应该具有一个MongoClient安装。 因此您不希望在Java EE无状态应用程序中为每个请求创建一个新的MongoClient实例。 实现一个Singleton EJB 一个简单的解决方案是使用Singleton EJB来保存MongoClient Singleton持有MongoClient package org.codingpedia.demo.mongoconnection;import java.net.UnknownHostException;import javax.annotation.PostConstruct; import javax.ejb.ConcurrencyManagement; import javax.ejb.ConcurrencyManagementType; import javax.ejb.Lock; import javax.ejb.LockType; import javax.ejb.Singleton;import com.mongodb.MongoClient;Singleton ConcurrencyManagement(ConcurrencyManagementType.CONTAINER) public class MongoClientProvider {private MongoClient mongoClient null;Lock(LockType.READ)public MongoClient getMongoClient(){ return mongoClient;}PostConstructpublic void init() {String mongoIpAddress x.x.x.x;Integer mongoPort 11000;try {mongoClient new MongoClient(mongoIpAddress, mongoPort);} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} }} 注意 Singleton –可能是此类中最重要的代码行。 此注释指定在应用程序中将仅存在一个这种类型的bean的单例。 该bean可以由多个线程同时调用。 它还带有PostConstruct批注。 此注释用于需要依赖注入完成后才能执行任何初始化的方法上在我们的情况下是初始化MongoClient ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)声明单例会话bean的并发管理类型。 默认情况下它设置为Container,在这里我仅用它来突出显示它的存在。 另一个选项ConcurrencyManagementType.BEAN指定Bean开发人员负责管理对Bean实例的并发访问。 Lock(LockType.READ)指定具有容器管理的并发性的单例bean的并发锁定类型。 当设置为LockType.READ 它将强制执行该方法以允许对其进行完全并发访问假定未持有任何写锁。 这允许多个线程访问相同的MongoClient实例并利用与数据库的内部连接池。 这非常重要因为另一个更保守的选项Lock(LockType.WRITE)是DEFAULT并强制对bean实例的独占访问。 这应该在高度并发的环境中使方法变慢。 使用Singleton EJB 现在您已经在应用程序中“保留了” MongoClient您可以注入MongoClientProvider来访问MongoDB例如获取集合名称 从其他bean示例访问MongoClient package org.codingpedia.demo.mongoconnection;import java.util.Set;import javax.ejb.EJB; import javax.ejb.Stateless;import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.mongodb.MongoClient; import com.mongodb.util.JSON;Stateless public class TestMongoClientProvider {EJBMongoClientProvider mongoClientProvider;public SetString getCollectionNames(){MongoClient mongoClient mongoClientProvider.getMongoClient();DB db mongoClient.getDB(myMongoDB); SetString colls db.getCollectionNames();for (String s : colls) {System.out.println(s);} return colls;}} 注意 db对象将是到指定数据库的MongoDB服务器的连接。 有了它您可以进行进一步的操作。 我鼓励您阅读有关Java驱动程序入门的更多信息…… 意识到 要记住的一方面 “对于对数据库的每个请求查找插入等Java线程都会从池中获取一个连接执行该操作然后释放该连接。 这意味着每次使用的连接插座可能不同。 此外如果启用了slaveOk选项的副本集则读取操作将在所有从属设备之间平均分配。 这意味着在同一个线程中写入和读取之后的数据可能会发送到不同的服务器主服务器然后是从服务器。 反过来由于复制是异步的因此读取操作可能看不到刚刚写入的数据。 如果要确保“会话”也许是http请求中的完全一致性则希望驱动程序使用相同的套接字这可以通过使用“一致请求”来实现。 在操作之前调用requestStart然后调用requestDone将连接释放回池 确保完整的一致性 DB db...; db.requestStart(); try {db.requestEnsureConnection();code.... } finally {db.requestDone(); } DB和DBCollection是完全线程安全的。 实际上它们被缓存了因此无论如何您都可以得到相同的实例。” [3] 资源资源 Java MongoDB驱动程序 Java驱动程序入门 Java驱动程序并发 GitHub – mongodb / mongo-java-driver示例 翻译自: https://www.javacodegeeks.com/2014/10/how-to-connect-to-mongodb-from-a-java-ee-stateless-application.html
http://www.pierceye.com/news/639516/

相关文章:

  • 网站建设福永附近网络公司怎样建设网站最好
  • 水利建设公共服务平台网站网站开发需要用什么
  • 2015做哪个网站致富网站点击量怎么看
  • 好学校平台网站模板下载wordpress 手机 登陆不了
  • 2021不良正能量免费网站app食品网站设计
  • ps做的网站林州网站建设哪家好
  • wordpress站点logo设置简易微网站模板
  • 做网站这么做网络工程师招聘
  • 如何做企业交易网站wordpress主题 ie打不开主页
  • 哪些网站做免费送东西的广告wordpress 请选择一个文件
  • wordpress定时备份插件贵州网站建设seo优化
  • 网站导航条怎么做效果wordpress会员网站
  • 企业网站空间在哪里自己做的网站竞价好还是单页好
  • 网站多域名怎么做网络系统管理员获取ip地址
  • 佛山专业做网站公司有哪些怎样推广自己的视频号
  • 网站不能调用样式旅游网站的功能
  • 哪里有网站建设的企业某某网站安全建设方案
  • 男女做那个的视频网站网站建设合同英文版
  • 营销型企业网站怎么建站做外账要登什么网站
  • 网站经营性备案莞城东莞网站建设
  • 网站开发的实施方案章丘建设局网站
  • 贴吧网站开发需求分析北京网站建设V芯ee8888e
  • 桂林建设信息网站wordpress仿盗
  • 建材营销型的网站微博登录网站开发
  • 百度联盟怎么做网站家乡网站建设策划书模板
  • wordpress开发中介网站我要进入手机建设银行网站
  • 电商网站大全wordpress弹幕主题
  • 钱站网站如何拉美贸易网
  • 网页无法访问如何解决h5云南seo公司
  • 杭州手机建设网站做宣传的网站有哪些