嗨,我是春季的新手,现在我正在使用maven
运行我的应用程序但是当我运行项目时,我会得到以下的例外
'bean class [com.ensis.spring.movielister]的'年:bean属性'年'不是写作或具有无效的设置器方法。设置器的参数类型是否匹配getter的返回类型?
主:
public class Main {
public static void main(String[] args){
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
MovieLister movieLister = (MovieLister)ctx.getBean("lister");
movieLister.printMoviesByYear();
}
}
电影:
private int year;
private String name;
public Movie(int year, String name) {
super();
this.year = year;
this.name = name;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Moviefinder:
public class MovieFinder {
private static List<Movie>moviesList;
static{
moviesList.add(new Movie(1990, "A"));
moviesList.add(new Movie(1991, "B"));
moviesList.add(new Movie(1992, "C"));
moviesList.add(new Movie(1993, "D"));
moviesList.add(new Movie(1994, "E"));
moviesList.add(new Movie(1995, "F"));
}
public List<Movie>findMoviesByYear(int year){
List<Movie>findMovies=new ArrayList<Movie>();
for(Movie movie:moviesList){
if(year==movie.getYear()){
findMovies.add(movie);
}
}
return findMovies;
}
}
movielister:
public class MovieLister {
private int year;
private MovieFinder movieFinder;
public void printMoviesByYear(){
List<Movie>found = movieFinder.findMoviesByYear(year);
for(Movie movie:found){
System.out.println("So movies are======>"+movie.getName());
}
}
}
ApplicationContext.xml
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="lister" class ="com.ensis.spring.MovieLister" autowire="byType">
<property name="year" value="1991"/>
</bean>
<bean id="finder" class="com.ensis.spring.MovieFinder"/>
</beans>
将一个设置器添加到Movielister:
public void setYear(final int year) {
this.year = year;
}
这是必需的,因为会员变量年度是私人的。
旁注:如果Movielister实例需要一年或任何其他成员变量,我强烈建议创建一个设置这些变量的构造函数。