我正在致力于将单模块 Spring Web 应用程序迁移到基于 JMS 的模块化架构中。该链接包含当前应用程序的结构和我的目标。
我将使用基于 CAS 的 SSO 服务器来执行身份验证。技术堆栈将是 spring-boot、Apache Camel、ActiveMQ 和 spring-security/apache-shiro。
例如,我将有一个库存应用程序、财务应用程序和 CAS 应用程序(SSO 服务器)。在某些地方,我必须管理一个集中的会话存储,它将保存当前的用户 ID 及其首选项。
使用案例:
如何为上述场景创建一个公共会话存储(几乎附加到 SSO 服务器)(Spring-Session 将有所帮助?),以及如何让每个应用程序知道谁是执行此事务的实际用户。
JSON由Spring 3 MVC @ResponseBody生成
{
"total": "1",
"page": "1",
"records": "2",
"rows": [
{
"id": "1",
"cell": {
"accountId": 1,
"userId": 1,
"transactionId": 6,
"subCatId": 0,
"accountName": "Credit Card",
"remarks": "Movie Hall Pass",
"amount": 250.0,
"transactionDate": "2011-03-16",
"subCatName": "Entertainment"
}
},
{
"id": "2",
"cell": {
"accountId": 2,
"userId": 1,
"transactionId": 7,
"subCatId": 1,
"accountName": "Savings Bank",
"remarks": "Part at Besand Nagar",
"amount": 5000.0,
"transactionDate": "2011-03-16",
"subCatName": "Dine Out"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
JQGrid初始化代码:
$("#transactionLogTable").jqGrid({
url: '/et/transaction/getTransactions?dateValue=03%2F16%2F2011',
datatype: "json",
loadError: …Run Code Online (Sandbox Code Playgroud) public class Document{
private Integer status;
// get()/set()
}
Run Code Online (Sandbox Code Playgroud)
然后是一个枚举:
public enum DocumentStatusEnum {
ACTIVE_DOCUMENT(2060),CANCELLED_DOCUMENT(2061),DRAFT_DOCUMENT(2062),PROCESSED_DOCUMENT(2063);
private final Integer value;
private DocumentStatusEnum(Integer value){
this.value = value;
}
public Integer getValue(){
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
在一个方法我使用上面的方法如下:
Document d = new Document();
d.setStatus(2063);
if (d.getStatus() == DocumentStatusEnum.PROCESSED_DOCUMENT.getValue()){
{
// print true;
}
else{
// print false;
}
Run Code Online (Sandbox Code Playgroud)
我在这里说实话.看起来不错.在同样的方法中,经过几行,我这样做:
d.setStatus(2060)
if (d.getStatus() == DocumentStatusEnum.ACTIVE_DOCUMENT.getValue()){
// print true
}
else{
// print false
}
Run Code Online (Sandbox Code Playgroud)
我弄错了.我研究并发现了一些关于Java中缓存和装箱功能的东西.我将枚举定义转换为:
public enum DocumentStatusEnum {
ACTIVE_DOCUMENT(2060),CANCELLED_DOCUMENT(2061),DRAFT_DOCUMENT(2062),PROCESSED_DOCUMENT(2063);
private final int value;
private …Run Code Online (Sandbox Code Playgroud) 平台:Spring 3.1.2,Tomcat 7.0.30
从3.0升级到Spring 3.1后,问题就开始了
我有一个正常的弹簧启用形式:
Run Code Online (Sandbox Code Playgroud)<c:url value='/healthcare/insurance/policy/save' var="url" /> <form:form commandName="insurancePolicy" action="${url }" method="POST" cssClass="form-horizontal"> <div class="module"> <div class="header"> <strong><spring:message code="insurance.policy.view.formbox" /> </strong> </div> <div class="module-content row-fluid"> <div class="span4"> <div class="control-group"> <label class="control-label"><spring:message code="insurance.policy.view.policyId" /></label> <div class="controls"> <form:input path="policyId" cssClass="span10" readonly="true" /> </div> </div> <div class="control-group"> <label class="control-label"><spring:message code="insurance.policy.view.tpaId" /></label> <div class="controls"> <form:select path="tpaId" items="${tpas }" itemLabel="tpaName" itemValue="tpaId" cssClass="span10" /> </div> </div>
等等.
我提交的方式是:
function save(){
$("#insurancePolicy").submit();
}
Run Code Online (Sandbox Code Playgroud)
我捕获的方式是通过Controller,它位于一个抽象类中,如下所示:
public abstract class AbstractCrudViewController<T, PK extends Number, META extends T> …Run Code Online (Sandbox Code Playgroud)