人们如何看待在界面中使用的最佳指南?什么应该和不应该进入界面?
我听说有人说,作为一般规则,接口必须只定义行为而不是状态.这是否意味着接口不应包含getter和setter?
我的观点:对于制定者来说可能不是这样,但有时我认为吸气剂可以放在界面中.这仅仅是为了强制实现类来实现那些getter,以便表明客户端能够调用那些getter来检查某些东西,例如.
在不使用BeanPostProcessor设置字段的情况下,从bean内部(在Java代码中)检索bean id的最简单方法是什么?
我能想到的唯一方法是使用BeanPostProcessor:
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
((MyBean)bean).setName(beanName);
return bean;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法不需要我写一个额外的类或知道有问题的bean的类?我尝试搜索文档和谷歌,但我不确定我需要寻找什么.
谢谢!
可能重复:
豆子有什么意义?
什么是javabean?它是干什么用的?什么是代码示例?我听说它用于与getter和setter方法有关吗?我对java bean是什么以及你甚至访问它的地方都很困惑.我用谷歌搜索,但找不到明确的答案.
如果我有以下私人会员:
private int xIndex;
Run Code Online (Sandbox Code Playgroud)
我该如何命名我的getter/setter:
getXindex()
setXindex(int value)
Run Code Online (Sandbox Code Playgroud)
要么
getxIndex()
setxIndex(int value)
Run Code Online (Sandbox Code Playgroud)
编辑:或
getXIndex()
setXIndex(int value);
Run Code Online (Sandbox Code Playgroud)
?
我是Spring MVC的新手,对Java中Java bean的使用有一点了解.
Java bean和Spring bean之间的基本区别是什么?
我收到的ArrayIndexOutOfBoundsException
时候我用Java 8特性的服务启动(创建bean).
Java 8已经建立并一直在运行.代码编译正确.在服务启动时,服务无法侦听端口,因为bean未创建.当我更改代码(删除java 8构造)时,服务启动,一切正常.
这是我正在使用的代码(服务启动的工作代码):
for (Item itemObject : response) {
if (itemObject.hasId()) {
idList.add(String.valueOf(itemObject.Id());
}
}
Run Code Online (Sandbox Code Playgroud)
使用Java 8构造的相同代码:
response.parallelStream()
.filter(itemObject -> itemObject.hasId())
.map(itemObject -> itemObject.getId())
.forEach(id -> idList.add(id));
Run Code Online (Sandbox Code Playgroud)
包含这段代码的类的bean是使用组件扫描创建的.
当使用第二个代码块代替第一个代码块时,以下是异常消息:
Exiting with throwable: java.lang.IllegalArgumentException: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file:/workspace/.../GetContainerIdForFcSkuAdapter.class]; nested exception is java.lang.ArrayIndexOutOfBoundsException: 51880
java.lang.IllegalArgumentException: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file:/workspace....Some.class]; nested exception is java.lang.ArrayIndexOutOfBoundsException: 51880
Run Code Online (Sandbox Code Playgroud)
对我来说没有意义的是,为什么在创建bean时,函数内部的代码(不是bean类的构造函数)被覆盖.我问这个,因为当我使用普通for循环而不是并行流时,异常不存在.ArrayOutOfBoundsException
当调用函数并且实际使用此代码时,不应该出现.
我该如何解决?
我一直在寻找,但找不到这些步骤.我希望我遗漏了一些明显的东西.
我有一个属性文件,其中包含以下内容:
machines=A,B
Run Code Online (Sandbox Code Playgroud)
我有另一个这样的文件,但在这个机器元素中有不同数量的成员,如下所示:
machines=B,C,D
Run Code Online (Sandbox Code Playgroud)
我的问题是如何以通用的方式将这个可变长度的机器变量加载到我的spring配置中的bean中?
这样的事情:
<property name="machines" value="${machines}"/>
Run Code Online (Sandbox Code Playgroud)
其中machines是我的java代码中的数组或列表.我可以定义它,但我想知道如果我能弄清楚如何做到这一点.
基本上我宁愿让spring进行解析并将每个值粘贴到一个列表元素中,而不是我必须编写一些读取完整机器字符串的东西并自己进行解析(使用逗号分隔符)将每个值放入一个数组中或列表.有没有一种简单的方法可以做到这一点,我错过了?
我有一个豆子${product}
.我想查看这个bean的所有可用字段/属性.因此,例如,${product.price}
,${product.name}
,${product.attributes.colour}
等.
是否可以使用JSTL/EL在JSP中动态打印出这些属性的所有名称和值?
就像是:
<c:forEach items="${product}" var="p">
${p.key} - ${p.value}
</c:forEach>
Run Code Online (Sandbox Code Playgroud) 我有结果
Query query = session.createQuery("From Pool as p left join fetch p.poolQuestion as s");
Run Code Online (Sandbox Code Playgroud)
查询,我想在JSP上显示它.
我有循环:
<c:forEach items="${pools}" var="pool">
<p>${pool.name}</p>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
我想显示poolQuestion表(连接表)的结果.我想要显示的值是"回答".
我该怎么做?
<c:forEach items="${pools}" var="pool">
<p>${pool.answer}</p>
<p>${pool.name}</p>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用.
错误是:
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/home.jsp at line 21
18: <c:forEach items="${pools}" var="pool">
19:
20: <p>${pool.name}</p>
21: <c:out value="${pool.poolQuestion.answer}"/>
22:
23: </c:forEach>
24:
SEVERE: Servlet.service() for servlet appServlet threw exception
javax.el.PropertyNotFoundException: Property 'answer' not found on type com.pool.app.domain.Pool
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:214)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:191)
at javax.el.BeanELResolver.property(BeanELResolver.java:300)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:81)
at …
Run Code Online (Sandbox Code Playgroud) javabeans ×10
java ×7
spring ×4
jsp ×2
jstl ×2
definition ×1
dynamic ×1
el ×1
getter ×1
interface ×1
java-8 ×1
properties ×1
setter ×1
spring-bean ×1
spring-mvc ×1