Spring-Hibernate在webapp中使用,什么是Thread安全会话管理的策略

我正在使用Spring和Hibernate开发一个Web应用程序,我非常着迷于使应用程序线程安全并能够支持基于我的老板建议的重负载我最终编写自己的session和session container来实现session per request pattern 。 另外我有很多DAOs而且我不愿意为所有DAOs编写相同的save method我复制粘贴这个Hibernate GenericDAO (我不能说它是同样的事情,因为当时hibernate不归jboss所有)和做管道工作,并且在压力下,所有这些都变得很复杂,并且在生产中,StaleObjectException和重复的数据是正确的,我觉得是时候回顾我已经完成的工作,简化它并使其更加强大数据处理。 你应该知道的一件事是,一个请求涉及许多DAO。 有石英运行数据库中的一些更新。 尽管我想要更好地调整一切,但我没有时间做必要的研究,而Hibernate则是一种巨大的(学习)。 所以就是这样,我想借用你的经验并提出一些问题来了解要采取的方向。 问题1 :Hibernate生成的uuid是否足够安全,可以用于线程环境并避免StaleObjectException? 问题2什么是在threadSafe场景中使用hibernate getCurrentSession的最佳策略(我已经阅读了关于threadlocal的东西,但没有得到太多的理解,所以没有这样做) 问题3 :HIbernateTemplate会采用最简单的解决方案吗? 问题4 :如果要实现连接池并调整生产服务器的需求,您会选择什么? 请毫不犹豫地将我指向博客或在线资源,我需要的只是一种适用于我的场景的方法。 如果你这样做,你的方法。 感谢您阅读本文,欢迎大家的想法……

Windows和Mac上的Android库项目

我代表我的两个Android开发团队问这个问题。 我使用Windows,而我的合作伙伴使用的是Macbook。 当通过Git共享项目时, classpaths意外地搞砸了。 以下是一些观察: 引用的库项目(最初工作)无法再解析。 通过“Java Build Path”中的Projects选项卡添加时,可以找到库。 但应用程序崩溃(由于NoClassDefFoundError ),再次指向一个混乱的构建路径结构。 最初在Mac上引用的库项目曾经直接作为JAR出现在构建路径中。 现在他们在Android Dependencies下做了,这很奇怪(前者更多)。 在Windows上,上面的JAR一直在Dependencies和Referenced Libraries下。 我想以一种我们可以在Git上共享项目并在未来无缝工作的方式来解决这个问题。 🙂

逐行解析文本文件,跳过某些行

我有一个看起来像这样的文件(但更大): >some text ABC DEF GHI >some more text JKL MNO PQR 我已经在Java中玩了一段时间并且已经能够用线条等构建数组。带有“>”的行通常是一行但有时可能是2,3行或更多行。 不以’>’开头的行的字符长度相同,但这些行可能有10,20或30或更多。 我现在想要创建一个字符串数组,其中数组中的每个字符串都包含一行不以’>’开头的行,如下所示: array element 1 = ABCDEFGHI array element 2 = JKLMONPQR 我觉得我很接近,但需要一点点屁股让我走。 我确信这对于专业人士来说很容易,但我还是Java新手。 具体问题与我在这个板上做的其他post有关。 这是一个FASTA文件: >3BHS_BOVIN (P14893) 3 beta-hydroxysteroid AGWSCLVTGGGGFLGQRIICLLVEEKDLQEIRVLDKVFRPEVREEFSKLQSKIKLTLLEG DILDEQCLKGACQGTSVVIHTASVIDVRNAVPRETIMNVNVKGTQLLLEACVQASVPVFI >41_BOVIN (Q9N179) Protein 4.1 MHCKVSLLDDTVYECVVEKHAKGQDLLKRVCEHLNLLEEDYFGLAIWDNATSKTWLDSAK EIKKQVRGVPWNFTFNVKFYPPDPAQLTEDITRYYLCLQLRQDIVSGRLPCSFATLALLG SYTIQSELGDYDPELHGADYVSDFKLAPNQTKELEEKVMELHKSYRSMTPAQADLEFLEN >5NTD_BOVIN (Q05927) 5′-nucleotidase MNPGAARTPALRILPLGALLWPAARPWELTILHTNDVHSRLEQTSEDSSKCVNASRCVGG VARLATKVHQIRRAEPHVLLLDAGDQYQGTIWFTVYKGTEVAHFMNALGYESMALGNHEF DNGVEGLIDPLLKEVNFPILSANIKAKGPLASKISGLYSPYKILTVGDEVVGIVGYTSKE TPFLSNPGTNLVFEDEITALQPEVDKLKTLNVNKIIALGHSGFEVDKLIAQKVKGVDVVV 我最终需要在他们自己的数组元素中的序列,以便我以后可以操作它们。

如何查找从属节点中的CPU负载(CPU利用率百分比)

您正在开发java中的负载平衡算法。 在我的系统中,将有一个主节点和从节点列表,其中主节点将传入请求分发给其一个从节点。 我想在每个从节点中找到CPU负载(所用CPU的百分比)。 这样主节点就可以有效地将请求分发给其最小负载的从节点之一。 任何人都可以建议我如何找到它。 The getSystemLoadAverage() method in JMX 可用于查找当前系统的cpu负载。 是否有可能使用相同的方法来查找从站中的负载..如果可能请建议我如何找到它。 如果不可能,请建议我采取其他一些方法来做同样的事情。 如果有人为此提供正确答案,我将更加感激。

使用foreach与mybatis进行批量插入

我正在使用mybatis,我想将ArrayList插入到某个表中。 可以在mapper中使用foreach,这最终会得到oracleexceptionORA_00933。 这是mybatis映射器: insert into SYS_ROLES_PERMISSIONGROUP (role_id, permissiongroup_id) values (#{model.role_id}, #{model.permissiongroup_id}) org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束### The error may involve com.gaotime.platform.system.mapper.RolePermissiongroupMapper.batchInsert-Inline ### The error occurred while setting parameters ### SQL: insert into SYS_ROLES_PERMISSIONGROUP (role_id, permissiongroup_id) values (?, ?) , (?, ?) , (?, ?) ### Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束; […]

Java Classpath错误 – 无法找到我的类

我试图使用randoop(Java自动测试生成器)和randoop找不到我的类: eliezer@ubuntu:~/Desktop$ java -ea -classpath \ randoop.1.3.2.jar:home/eliezer/myclasses \ randoop.main.Main gentests \ –testclass=/home/eliezer/Desktop/myclasses/ArrayListError policy = sun.security.provider.PolicyFile@85af80 Throwable thrown while handling command:java.lang.Error:\ classForName(/home/eliezer/Desktop/myclasses/ArrayListError) java.lang.Error: classForName(/home/eliezer/Desktop/myclasses/ArrayListError) at randoop.util.Reflection.classForName(Reflection.java:206) at randoop.util.Reflection.loadClassesFromList(Reflection.java:386) at randoop.main.GenInputsAbstract.findClassesFromArgs(GenInputsAbstract.java:507) at randoop.main.GenTests.handle(GenTests.java:184) at randoop.main.Main.nonStaticMain(Main.java:80) at randoop.main.Main.main(Main.java:42) Caused by: java.lang.ClassNotFoundException: \ /home/eliezer/Desktop/myclasses/ArrayListError at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at randoop.util.Reflection.classForName(Reflection.java:198) … 5 more Randoop failed. Last sequence under […]

Java ASM GeneratorAdapter变量命名

我正在生成一个简单的类,无法注入适当的变量名称。 ASM版本是5.2 。 这是代码: package com.test; import org.objectweb.asm.*; import org.objectweb.asm.commons.GeneratorAdapter; import org.objectweb.asm.commons.Method; import java.nio.file.Files; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws Exception { ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES); String name = “com.test.Sub”; cw.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC, name.replace(‘.’, ‘/’), null, “java/lang/Object”, null); Method ctor = Method.getMethod(“void ()”); GeneratorAdapter mg = new GeneratorAdapter(Opcodes.ACC_PUBLIC, ctor, […]

使用ObjectOutputStream写入文件而不覆盖旧数据

我需要在eclipse上的文件上编写字符串而不覆盖旧字符串。 该函数类似于:创建一个字符串,将其保存在文件中,创建另一个字符串,将其保存在文件中,这包含多个字符串。 字符串具有下一种格式: String one = name surname surname; value1 value2 value3; code 所以方法将是:创建字符串,将其保存在文件中。 创建另一个字符串,将其保存在文件上等。然后在文件上保存所需的字符串数量后,我需要读取列出控制台上所有字符串的文件。 但是现在,我只能在文件上保存一个字符串然后列出它。 如果我保存两个字符串,第二个会覆盖第一个字符串,无论如何,它不正确,因为当我想列出它们时返回null值。 这是在文件上写入字符串的方法: public void writeSelling(List wordList) throws IOException { fileOutPutStream = new FileOutputStream (file); write= new ObjectOutputStream (fileOutPutStream); for (String s : wordList){ write.writeObject(s); } write.close(); } 这就是我在主类上调用write方法的方法 : List objectlist= new ArrayList(); objectlist.add(product); //Product is the string I […]

Android:如何通过with-in获取网格视图项Tag的位置另一个网格视图的set-on-item-click监听器function?

如何通过其位置获取grid-view的项目标记,并且必须从另一个grid-view的项目单击侦听器function获取。 gridview2.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { int i=(Integer)gridview1.getChildAt(gridview1s_position).getTag();—> it is returning Null } }); 我的gridview1.setOnitemClicklistener和gridview2.setonitemclicklistener在同一个文件中( MainActivity.java ) 但gridview1适配器是一个ImageAdapter.java (用于设置gridview1中的图像), gridview2适配器是imageadapter2.java (这是用于设置黑色图像,以便gridview2看起来像一个包含行和列的框,否则它是显示像粗线,因为我们没有在gridview中放任何东西) gridview1.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v,int position, long id) { int tag=(Integer)gridview1.getChildAt(position).getTag();//this returning the tag } }); ImageAdapter1.java public View getView(int arg0, […]

在DraggableGridView中显示布局

我正在尝试制作一个Grid of Image +字幕对,用户可以通过拖放重新排列。 要做到这一点,我使用DraggableGridView – https://github.com/thquinn/DraggableGridView 。 虽然我可以显示TextViews和ImageViews并重新排列它们,但是当我尝试在一个布局中连接它们时,一切都停止显示。 因此,在使用图像和标题解析XML之后,这可以工作: for(ImagePair pair : pairs){ tv = new TextView(this); tv.setText(pair.getText()); URL imageURL = new URL(pair.getURL()); Bitmap bmp = BitmapFactory.decodeStream(imageURL.openConnection().getInputStream()); imv = new ImageView(this); imv.setImageBitmap(bmp); dgv.addView(tv); dgv.addView(imv); 它显示文本和图像的网格,但它们没有配对 – 您可以用图像等切换文本的位置。 当我尝试插入包含图像+文本的布局时: for(ImagePair pair : pairs){ Bitmap bmp = BitmapFactory.decodeStream(imageURL.openConnection().getInputStream()); LayoutInflater li = getLayoutInflater(); View v = li.inflate(R.layout.image, […]