关于java中安全框架的一个简单问题.
到目前为止,JAAS一直是我的框架.是的人抱怨它很难设置,它需要挂钩你的底层系统,但它确实有它的工作,并有额外的作为规范的奖励.
这就是说我最近一直在研究Java中的其他安全框架,这两个似乎最受网络关注的是:
1 - Spring Security
Spring Security似乎非常受欢迎,但我发现它有点令人费解.
2 - Apache Shiro
Apache Shiro似乎比Spring Security更直接,但似乎缺少一些文档.
所以我的问题是,在上面提到的框架中,人们认为我应该花时间学习Spring Security或Apache Shiro吗?
(或者我应该坚持使用JAAS?)
我有一个关于Demeter法与Java中其他对象中包含的列表相关的问题.我有以下课程.
public class Conversation
{
Person person;
List<Message> conversationList;
public List<Message> getConversationList()
{
return conversationList;
}
}
Run Code Online (Sandbox Code Playgroud)
要向此类中的conversationList添加新的Message对象,我通常会执行以下操作.
Conversationc = new Conversation();
c.getConversationList().add(new Message());
Run Code Online (Sandbox Code Playgroud)
经过一段时间的阅读后,这似乎违反了得墨忒耳定律,并且如下所述为Converstaion添加了一种方法,这将是"更好"的方法.
public List<Message> addMessageToList(Message msg)
{
conversationList.add(msg);
}
Run Code Online (Sandbox Code Playgroud)
然而,这对我来说似乎完全矫枉过正.在这种情况下,最佳做法是什么?
有谁知道spring在运行时使用什么技术来实现依赖注入?它只是简单地使用方面(AOP)还是更复杂的东西?
我遇到从UTF-8编码字符串中删除尾随空字符的问题:
如何从一个删除这些字符String?
这是我用来创建String一个代码的代码Vec:
let mut data: Vec<u8> = vec![0; 512];
// populate data
let res = String::from_utf8(data).expect("Found invalid UTF-8");
Run Code Online (Sandbox Code Playgroud) 当使用FileInputStream在KeyStore中读取如下时,是否需要显式关闭input-steam以停止浪费系统资源?
FileInputStream fin = new FileInputStream("keystore.jks");
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(fin, password);
// Is this line needed ??
fin.close();
Run Code Online (Sandbox Code Playgroud)
此FileInputStream是由load()方法自动关闭还是需要显式手动干预?
我有一个问题,想知道如何通过MongoDB中的_id删除文档.我可以通过其他属性删除没问题但我似乎缺少正确的语法删除_id.
我的文档格式如下:
{ "_id" : { "$oid" : "57a49c6c33b10927ff09623e" }, "name" : "Brad" }
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的Java代码:
// Boiler plate
MongoClient client = new MongoClient( "localhost" , 27017 );
MongoDatabase db = client.getDatabase("my-database");
MongoCollection<Document> collection = db.getCollection("my-collection")
// This works
collection.deleteOne(new Document("name", "Brad"));
// This does not work
collection.deleteOne(new Document("_id", "57a49c6c33b10927ff09623e"));
Run Code Online (Sandbox Code Playgroud)
任何人都知道我哪里出错了?
关于AspectJ,我有一个非常简短的问题.
方面是从单独的线程执行还是在现有线程上执行(即主方法执行的线程)?