解决方案:不,我不再扩展原始父级.
原文:
有没有办法注释继承的finalsetter方法?我正在扩展一个类,它有一个final我想@Autowire用Spring 的setter .父类来自库,无法修改.
我发现的一种解决方法是编写一个代理方法,但这似乎比必要的工作更多.
public abstract class SqlMapClientDaoSupport ... {
public final void setSqlMapClient(SqlMapClient smc) {
...
}
}
@Component
public class AccountDao extends SqlMapClientDaoSupport {
// all this just to annotate an existing method?
@Autowire
public final void setSqlMapClientWorkaround(SqlMapClient smc) {
super.setSqlMapClient(smc);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑1:以上示例已修改以反映用例:
用例是为Ibatis/Spring实现扩展公共基类的 DAO对象.每个DAO都需要相同的属性集,每个都需要配置为bean.我目前通过单独配置每个来完成此操作applicationContext.xml.
<bean id="accountDAO"
class="com.example.proj.dao.h2.AccountDAOImpl"
p:sqlMapClient-ref="sqlMapClient" />
<bean id="companyDAO"
class="com.example.proj.dao.h2.CompanyDAOImpl"
p:sqlMapClient-ref="sqlMapClient" />
<!-- etc... -->
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用组件扫描来自动发现和自动装配DAO对象,我无法复制/粘贴botch.
<context:component-scan base-package="com.example.proj.dao.h2" />
Run Code Online (Sandbox Code Playgroud)
我没有在注释指南中看到如何注释除声明的属性/成员之外的属性/成员.我希望这是我想念的东西. …
我们有一个父 Maven 项目(聚合器)和一些子项目:
parent/
child1/
child2/
...
Run Code Online (Sandbox Code Playgroud)
现在我们想要将该结构转换为一个项目,并且需要将 pom.xml 文件合并在一起。问题在于项目具有非常复杂的 pom.xml 文件,其中包含许多配置(生命周期阶段、平台特定设置、目标等)和长长的依赖项列表。手动合并会很复杂并且容易出错。
有人知道用于合并 pom.xml 文件的 Maven 插件吗?
我有一个问题,也许是一个愚蠢的问题,我想在使用SHA1算法散列后将数据存储在数据库中.但是,在将来的某个时间,数据库中的大小会增加,因为SHA1中的大小字很大.
我们可以减小SHA1算法的大小,可能是一半大小.对不起我的愚蠢问题,以及我糟糕的英语.谢谢.:d
我正在使用JAVA.
我想知道是否有任何方法可以将一个键用作 .properties 文件中另一个键的值。
例如,这是可能的,还是有其他方法可以实现类似的目标?
key = another_key
app.name=Stack Over Flow
app.title.welcome=Welcome to {app.name}
Run Code Online (Sandbox Code Playgroud)
所以当我得到app.title.welcome它的价值应该是“ Welcome to Stack Over Flow”
我正在编写一个测试用例,其中我想为一个测试用例运行一个DataPoint,为第二个测试用例运行第二个DataPoint.
@RunWith(Theories.class)
public class DummyTest {
@DataPoints
public static String[] getFileNames() {
return new String[] { "firstFile.txt","firstFile1.txt" };
}
@Theory
public void test1(String fileName) throws Exception {
System.out.println(fileName);
assertThat(true, is(equalTo(Boolean.TRUE)));
}
@DataPoints
public static String[] getSecondFileNames() {
return new String[] { "secondFile.txt","secondFile1.txt" };
}
@Theory
public void test2(String fileName) throws Exception {
System.out.println(fileName);
assertThat(true, is(equalTo(Boolean.TRUE)));
}
}
Run Code Online (Sandbox Code Playgroud)
我希望在第一个测试用例中我的第一个数据点是getFileNames方法,而第二个测试用例则应该调用getSecondFileNames数据点.任何人都可以建议这是可行的吗?
谢谢,
谢卡尔
嗨,现在我得到所有的分类和子类别.怎么只获得子类别?
<?php foreach ($this->getStoreCategories() as $_category): ?>
<?php $_menu .= $this->drawItem($_category) ?>
<?php endforeach ?>
Run Code Online (Sandbox Code Playgroud) 我有一个包含地址的字符串,我想删除最后2个字的邮政编码.
例如 21 Lane Street London W10 2GH
我想删除'W10 2GH'
以下代码是生产时我编译它在32位系统的警告:
1087: warning: integer constant is too large for "long" type; 我怎么能解决这个问题所以我没有得到那个警告,它在32位上运行正常?
有效的输入是:
unsigned char str[] = "\x00\x17\x7c\x3a\x67\x4e\xcb\x01";
Run Code Online (Sandbox Code Playgroud)
并且mypow函数返回unsigned long long.
unsigned long long high, low, nano;
high = // line 1087
(str[7]&0xff) * mypow(2,56) +
(str[6]&0xff) * mypow(2,48) +
(str[5]&0xff) * mypow(2,40) +
(str[4]&0xff) * mypow(2, 32);
low =
(str[3]&0xff) * mypow(2,24) +
(str[2]&0xff) * mypow(2,16) +
(str[1]&0xff) * mypow(2,8) +
(str[0]&0xff);
nano = ((high + low)/10000000) - (unsigned long long)11644473600;
return localtime((time_t*)&nano);
Run Code Online (Sandbox Code Playgroud)