大家好,任何人都可以帮助我。我目前有一个可能必须在多线程应用程序中使用的服务类,任何人都可以帮助我使用 Spring IOC 使我使用的格式类成为线程安全的。
这是一个代码片段
@Configuration
@EnableTransactionManagement(mode=AdviceMode.ASPECTJ)
public class MyConfig
{
...
@Bean
public DateFormat dateFormatMMddyyyy()
{
return new SimpleDateFormat("MM/dd/yyyy");
}
...
}
@Component("myServiceComponent")
public class MyServiceComponent5
{
@Autowired
private DateFormat dateFormatMMddyyyy; //HEY Fix Me!!
...
public void sampleProcess(Date date)
{
String formatedDate = dateFormatMMddyyyy.format(date);
// do usefull stuffn here
}
}
@Service("MyService")
{
@Autowired
private MyServiceComponent5 myServiceComponent5;
public doMultiThreadProcess(Date date)
{
// not sure how to do this yet and probably gona ask on a different thread. =\
// Currently more concern on how to set up MyServiceComponent5
...
myServiceComponent5.sampleProcess(date);
...
}
}
如果我做错了什么,任何人都可以发表评论。最近我刚刚读到 Number/DateFormat 类不是线程安全的,所以我必须将它们放在方法中或使用 threadlocal。谁能帮我修改我的课程,以便我可以使用第二个选项(弹簧方式)。
顺便说一句,如果您需要任何澄清或其他信息,请告诉我。对设计的评论也将不胜感激。
请注意,代码只是一个示例,但它描述了我目前正在做的事情。此外,如果这对当前问题有任何影响,这将用于桌面应用程序。
使用的框架将是 Spring 3.1、Java 7 和 hibernate。
最后,提前感谢您,代码片段将不胜感激。