Aru*_*run 45 java spring exception java-ee
抽象类无法在java中实例化.但春天说的是像豆子一样的东西abstract="true".如果抽象类的状态仅由其子类实例初始化(我猜我是对的),那么如果我需要在抽象类中定义的方法中使用该属性那么...是否有可能它?我有一组代码如下:
class abstract A {
private Something somethingObj;
// getters and setters are present.
public void logSomething() {
try{
//some code which throws exception
}
catch(Exception e){
somethingObj.logIt(e);// I have some logic inlogIt method.
}
}
}
Run Code Online (Sandbox Code Playgroud)
Tom*_*icz 96
Spring中的抽象bean与抽象类有些不同.实际上,Spring中的abstract bean甚至不必映射到任何类.以此为例:
<bean id="dao" abstract="true">
<property name="dataSource" ref="dataSource"/>
<property name="someHelper" ref="someHelper"/>
</bean>
<bean id="fooDao" class="FooDao" parent="dao">
<property name="fooHelper" ref="fooHelper"/>
</bean>
<bean id="barDao" class="BarDao" parent="dao">
<property name="barHelper" ref="barHelper"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
和课程:
public class FooDao {
private DataSource dataSource;
private SomeHelper someHelper;
private FooHelper fooHelper;
//setters
}
public class BarDao {
private DataSource dataSource;
private SomeHelper someHelper;
private BarHelper barHelper;
//setters
}
Run Code Online (Sandbox Code Playgroud)
请注意,FooDao并且BarDao没有任何父类(抽象或非抽象)基类.父抽象bean定义仅用于对公共属性进行分组,因此可以避免在XML中重复.
另一方面,引入Dao既包含FooDao并BarDao继承的抽象类也是一个好主意:
public abstract Dao {
protected DataSource dataSource;
protected SomeHelper someHelper;
//setters
}
public class FooDao extends Dao {
private FooHelper fooHelper;
//setters
}
public class BarDao extends Dao {
private BarHelper barHelper;
//setters
}
Run Code Online (Sandbox Code Playgroud)
但是daobean 仍然没有定义类.当几个具体bean具有相同的依赖关系时,将抽象bean视为减少XML重复的一种方法.
| 归档时间: |
|
| 查看次数: |
40076 次 |
| 最近记录: |