一些人(例如,在服务器端http://www.theserverside.com/news/thread.tss?thread_id=41473)建议使用ThreadLocal对象与使用全局变量一样糟糕。我想如果您将它们设为公共静态变量,那是真的。然后的问题是,很难分辨出它的使用位置,更改位置等。
在我的spring DI tomcat
Web应用程序中,如果我只是让spring创建一个包含ThreadLocal的单例对象,然后将该单例注入需要它的任何类中,似乎可以解决此问题。
所以我的单身看起来像这样:
@Component
public class Username {
private ThreadLocal<String> username;
public Username() {
username = new ThreadLocal<String>();
}
public String getUsername()
return username.get();
}
public void setUsername(String name) {
username.set(name);
}
}
可能需要的类如下所示:
@Service
public class addEntryTransaction {
@Autowired
Username username;
public void method() {
...
log("Method called by "+username.getUsername());
...
}
}
这样做仍然具有不必通过多个无关的层传递用户名的好处,从而使方法参数更简单。@Autowired是该类使用该变量的声明。
这种方法的优点和缺点是什么?
如果使用Spring,则可以简单地使用请求范围的bean而不是显式ThreadLocal
s:
public interface UserName {
...
}
@Component
@Scope(value = "request", proxyMode = ScopedProxyMode.INTERFACES)
public class UsernameImpl implements UserName {
private String username;
...
}
问题内容: 我正在尝试转换此原始sql查询: 在Spring Data规范中,我认为到目前为止我的问题是如何连接这些表。 这是我当前在规范中的转换: 我得到这个异常: 我想补充一点,例如我是Spring框架的新手,因此这是我在Spring上的第一个应用程序,因此我对新手问题表示歉意;) 编辑:添加的实体产品,BeforeRelationShip Product和FollowRelationShip
问题内容: 我没有使用Spring,所以正在类中创建EntityManager的实例。 我使用了Hibernate-Eclipse逆向工程来自动生成类。这些类都有一个EntityManager的实例。 我不确定100%Hibernate如何与EntityManager一起工作,所以我想知道是否可以创建这么多的此类实例(EntityManager),例如,事务是否会出现问题? 我是否应该仅创建一个单
我刚接触Spring,正在尝试理解“将一个原型bean注入一个单例bean”的概念。根据我在singleton中的理解,每个Spring IoC容器只有一个实例,不管您检索它多少次。,因为仍未实例化。我开发了以下示例,其中在单个bean中给出了原型bean的参考,如下所示: RequestProcessor.java requestValidator.java 如何解决?我的理解正确吗? 另一种方
问题内容: 我听说将block元素放入内联元素是HTML的罪过: 但是,如果您像样式表那样设置外部锚点,该怎么办?还是错吗?关于块级和内联元素的HTML 4.01规范似乎是这样认为的: 样式表提供了一种方法来指定任意元素的呈现,包括将元素呈现为块还是内联。在某些情况下,例如列表元素的内联样式,这可能是适当的,但总的来说,不鼓励作者以这种方式覆盖HTML元素的常规解释。 有人对此问题有其他建议吗?
问题内容: 我的单例访问器方法通常是: 我可以做些什么来改善这一点? 问题答案: 另一种选择是使用该方法。从文档中: 运行时恰好在该类或从其继承的任何类从程序内部发送其第一条消息之前,一次将其发送到程序中的每个类。(因此,如果不使用该类,则可能永远不会调用该方法。)运行时以线程安全的方式将消息发送给类。超类在其子类之前收到此消息。 因此,您可以执行以下操作:
问题内容: 是否存在有关嵌套HTML 和HTML元素的最佳实践? 经典方式: 要么 问题答案: 从w3开始:标签本身可以位于相关控件之前,之后或周围。 要么 要么 请注意,当表格用于布局时,不能使用第三种技术,标签位于一个单元格中,而其关联的表单字段位于另一个单元格中。 任一有效。我喜欢使用第一个或第二个示例,因为它可以为您提供更多的样式控制。