我是弹簧范围的新手。
我有如下代码
@Controller
public class PageController extends AbstractController {
private ABCManager abcManager;// repository singleton bean.
@Inject
public PageController(final ABCManager accountDiaryManager){
this.abcManager= abcManager;
}
@RequestMapping(value="/createpage",method=RequestMethod.POST)
public @ResponseBody Page createPage(@RequestParam(value="viewtype")final String viewtype, final WebRequest request)
{
final ABC abc= (abc) request.getAttribute(AbstractController.CURRENT_ABC, WebRequest.SCOPE_SESSION);
.........
abcManager.createPage(Long.valueOf(abc.getId()), page);
request.setAttribute("abc", abcManager.getabc(abc.getId()),WebRequest.SCOPE_SESSION);
}
由于 abc 对象可以在同一个用户会话中多次更改,因为 abc 是根对象并包含树结构,用户操作将涉及子对象中任何位置的更改。因此,当执行编辑时,我将修改后的 abc 对象保存在请求中,以便每次在请求中都可以使用最新的 abc 对象。这个 abc 可以变得非常非常大,这是我所关心的。这样做是个好方法吗?
我想知道这样编写代码是否是一种好习惯。这是线程安全的方式吗?什么是最好的替代方案。