- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
将我的 Web 应用程序转换为 Spring。 Autowiring 在 Spring 上下文中启动的情况下会成功,但在其他情况下会失败,这是理所应当的。
我有一个 MangaBean
,它有一个名为 genre
的属性。 Genre 的值应该是一组异常(exception)的流派中的一个。我已将验证放入 bean 本身。像这样的事情:
@Component
public class MangaBean{
private String title;
private String author;
private String isbn;
private String genre;
//getters
public void setTitle(String title){
//validations
}
public void setGenre(String genre){
boolean result=MangaUtil.verifyGenre(genre);
if(result){
this.genre=genre;
}else{
this.genre=null;
}
}
}
该实用程序调用从表中获取流派集并验证提供的流派的方法。
@Component
public class MangaUtil{
@Autowired
MangaDao mDao;
public static boolean verifyGenre(String genre){
List<String> genres=mDao.getGenresList(); //null pointer exception
//do validations
}
}
MangaDao
包含一个 Autowiring 的 NamedParameterJDBCTemplate
,它从数据库获取流派。
MangaDao 代码:
@Repository
public class MangaDao{
@Autowired
private NamedParameterJdbcTemplate template;
public List<String> getGenresList(){
String query="select genres from manga_table";
Map<String,String> paramMap=new HashMap<String, String>();
return template.queryForList(query, paramMap, String.class);
}
}
在上面的安排中,当我 Autowiring MangaUtil 时,对 MangaUtil 的调用也可以正常工作。示例:
@Component
public class MangaBean{
@Autowired
MangaUtil mangaUtil;
private String title;
private String author;
private String isbn;
private String genre;
//getters
public void setTitle(String title){
//validations
}
public void setGenre(String genre){
boolean result=mangaUtil.verifyGenre(genre);
if(result){
this.genre=genre;
}else{
this.genre=null;
}
}
}
但是,如果我在 bean 内使用 Autowiring ,那么在我自己实例化 bean(例如 MangaBean mb=new MangaBean()
)的情况下, Autowiring 将会失败。像这样的情况请指教。 我想从我的 bean 中调用 validator 方法,而无需 bean 本身进行任何 Autowiring 。这可能吗?。如果没有,有什么方法可以存储流派列表并在 bean 中使用它来验证我的数据。请指教。
最佳答案
默认情况下, Autowiring 仅适用于 Spring 管理的 bean,即由 Spring 创建的 bean。为了使其适用于实例化的bean,例如新
请参阅 Spring 文档:
您需要使用@Configurable注释并按照文档配置AspectJ。
关于java - 如何在可以在 spring 上下文之外调用该方法的类中使用 Autowiring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14036742/
我是一名优秀的程序员,十分优秀!