San*_*Lee 2 java spring annotations spring-mvc spring-3
我想创建一个具有属性文件值的bean.我做了这样的事情:
@Component
public class MainNavs implements Iterable<Nav>{
@Value("${newshome.navs.names}")
String[] names;
@Value("${newshome.navs.ids}")
String[] ids;
final private List<Nav> navs = new ArrayList<Nav>();
public MainNavs() throws Exception {
for (int i = 0; i < names.length; i++) {
navs.add(new Nav(names[i], ids[i]));
}
}
public Iterator<Nav> iterator() {
Iterator<Nav> n = navs.iterator();
return n;
}
public class Nav {
private String name;
private String id;
private String imageNumber;
public Nav(String name, String id, String imageNumber) {
this.name = name;
this.id = id;
}
//....
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我自动装配这样的@Autowired MainNavs navs;,它使NullPointerException因为names与ids当它试图访问这些构造中并没有启动.
如果我做了一些方法init()并试图用它启动,那就没有任何问题.
public init() throws Exception {
for (int i = 0; i < names.length; i++) {
navs.add(new Nav(names[i], ids[i]));
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我不想手动启动.我可以在构造函数中启动它吗?还是其他任何选择?
| 归档时间: |
|
| 查看次数: |
2081 次 |
| 最近记录: |