这个是一个spring的笔试题,公司给了一个错误的程序,让修正它。
请大家帮我看看,我基本调通了,但是有的地方不确定,希望大家把自己的贴上来,让我参考一下。谢谢,好的我会加分的。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" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <bean id="courseService" class="CourseService">
<property name="dao" ref="talentDao" />
</bean>
<bean id="courseDao" class="CourseDAOImpl">
</bean>
</beans>CourseDAO.java
import java.util.ArrayList;
import java.util.List;public interface CourseDAO {
public List AllCourses();
public List AllCoursesOrdered();
}
AbstractCourseDAOImpl.javaimport java.util.List;
public class AbstractCourseDAOImpl implements CourseDAO { protected static final String[] courses = { "Java", "C++", "C", "PHP" };
private final List results = null; public List AllCourses()
{
return this.results;
}
public List AllCoursesOrdered() {
return this.results;
}
}CourseDAOImpl.java
import java.util.ArrayList;
import java.util.List;public class CourseDAOImpl extends AbstractCourseDAOImpl { private List results = null;
public List AllCourses() {
return check();
}
private List check() {
List l = new ArrayList();
for (int i = 1; i < super.courses.length; i++) {
l.add(super.courses[i].toUpperCase());
}
return results;
}
}
CourseService.java
import java.util.ArrayList;
import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;public class CourseService { @Autowired
@Qualifier("courseDao")
private CourseDAO dao; public ArrayList AllCourses() {
ArrayList list = new ArrayList();
dao.AllCourses(); return list;
} public List<String> AllCoursesOrdered() {
return dao.AllCoursesOrdered();
} // Setter injection -- just in case you'd need it.
public void setDao(CourseDAO dao) {
this.dao = dao;
}
}
CourseTest.java
import java.util.List;import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.infohubble.TalentService;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class CourseTest {
@Autowired
@Qualifier("courseService")
private CourseService courseService;
@Test
public void CountTheSkillsYouNeed() {
Assert.assertTrue(courseService.AllCourses(),
4);
}
@Test
public void CheckSkillsOrdered() {
String firstSkill = "Eclipse";
List skills = courseService.AllCoursesOrdered();
Assert.assertEquals("The course "+firstSkill+" should be first",true,courses.get(0).equalsIgnoreCase(firstSkill));
}
}
请大家帮我看看,我基本调通了,但是有的地方不确定,希望大家把自己的贴上来,让我参考一下。谢谢,好的我会加分的。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" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <bean id="courseService" class="CourseService">
<property name="dao" ref="talentDao" />
</bean>
<bean id="courseDao" class="CourseDAOImpl">
</bean>
</beans>CourseDAO.java
import java.util.ArrayList;
import java.util.List;public interface CourseDAO {
public List AllCourses();
public List AllCoursesOrdered();
}
AbstractCourseDAOImpl.javaimport java.util.List;
public class AbstractCourseDAOImpl implements CourseDAO { protected static final String[] courses = { "Java", "C++", "C", "PHP" };
private final List results = null; public List AllCourses()
{
return this.results;
}
public List AllCoursesOrdered() {
return this.results;
}
}CourseDAOImpl.java
import java.util.ArrayList;
import java.util.List;public class CourseDAOImpl extends AbstractCourseDAOImpl { private List results = null;
public List AllCourses() {
return check();
}
private List check() {
List l = new ArrayList();
for (int i = 1; i < super.courses.length; i++) {
l.add(super.courses[i].toUpperCase());
}
return results;
}
}
CourseService.java
import java.util.ArrayList;
import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;public class CourseService { @Autowired
@Qualifier("courseDao")
private CourseDAO dao; public ArrayList AllCourses() {
ArrayList list = new ArrayList();
dao.AllCourses(); return list;
} public List<String> AllCoursesOrdered() {
return dao.AllCoursesOrdered();
} // Setter injection -- just in case you'd need it.
public void setDao(CourseDAO dao) {
this.dao = dao;
}
}
CourseTest.java
import java.util.List;import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.infohubble.TalentService;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class CourseTest {
@Autowired
@Qualifier("courseService")
private CourseService courseService;
@Test
public void CountTheSkillsYouNeed() {
Assert.assertTrue(courseService.AllCourses(),
4);
}
@Test
public void CheckSkillsOrdered() {
String firstSkill = "Eclipse";
List skills = courseService.AllCoursesOrdered();
Assert.assertEquals("The course "+firstSkill+" should be first",true,courses.get(0).equalsIgnoreCase(firstSkill));
}
}
talentDao的bean呢?怎么找不到?
还有别的吗?
在那里配置的?
courseDao生成了之后给谁用的?
<bean id="courseService" class="CourseService">
<property name="dao" ref="talentDao" />
</bean>这个dao注入错误的dao
--------
可能还有空指针的问题...
楼上发现问题了~有这句不是null才怪那~
好了,至少有这5个错,逐一改正吧
final成员变量表示常量,只能被赋值一次,赋值后值不再改变~
<bean id="courseDao" class="CourseDAOImpl">
</bean>
import java.util.List;public class CourseDAOImpl extends AbstractCourseDAOImpl { private List results = null;
public List AllCourses() {
return check();
}
private List check() {
List l = new ArrayList();
for (int i = 1; i < super.courses.length; i++) {
l.add(super.courses[i].toUpperCase());
}
return results;
}
} return results; 改成 return l;