发表于: 2017-09-05 23:19:45
1 890
一、今日完成
今天上午请假逃学半天,下午和晚上找BUG和改BUG
1.在web.xml中配置DispatcherServlet
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>和<servlet-mapping>元素中的子元素<servlet-name>必须保持一致,除了大写敏感外,不得有其他任何字符包括空格,否则在部署应用到Tomcat失败,控制台报错,提示启动和初始化applicationContext错误;
2.定义service接口的实现类过程中不得加入abstract 修饰符,否则控制台输出warning和error如下:
[WARN ] 2017-09-05 22:45:50,694(2907) --> [RMI TCP Connection(3)-127.0.0.1] org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546): Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'personController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.jnshu.service.PersonService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}
3.IDEA提供了快速检查拼写错误以及配置失败的快捷功能
在不同目录下存在依赖关系的文件名或者路径,按住Ctrl,移动光标至该文件名或路径名上,如有完整的路径提示或者左键单击可以跳转至相应文件界面,说明配置无误,否则存在拼写错误或者路径引用不当;
4.使用log4j输出日志,不仅需要在相应类中定义一个对象变量
private Logger log = Logger.getLogger(PersonController.class);
针对相应类中定义的方法,需要在方法体中调用“log.info(param name);”等方法,才会在该类相关方法被调用后输出日志
5.针对service层组件中定义的具体方法,创建相应的测试类十分有必要,可以为后期排错省下一大笔麻烦,即使测试类中不搞花里胡哨的测试方法
public class PersonServiceImplTest {
@Before
public void before() throws Exception {
}
@After
public void after() throws Exception {
}
/**
*
* Method: insertOne(Person one)
*
*/
@Test
public void testInsertOne() throws Exception {
//TODO: Test goes here...
}
/**
*
* Method: updateOne(Person one)
*
*/
@Test
public void testUpdateOne() throws Exception {
//TODO: Test goes here...
}
/**
*
* Method: selectOne(long id)
*
*/
@Test
public void testSelectOne() throws Exception {
//TODO: Test goes here...
}
/**
*
* Method: deleteOne(long id)
*
*/
@Test
public void testDeleteOne() throws Exception {
//TODO: Test goes here...
}
/**
*
* Method: showAll()
*
*/
@Test
public void testShowAll() throws Exception {
//TODO: Test goes here...
}
}
6.最后成功把项目部署到Tomcat,并且在postman中测试POST方法成功
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String shoeAll(Model model){
List<Person> alll_list = oneService.showAll();
log.info("====>all_list"+alll_list);
model.addAttribute("all_list", alll_list);
return "list";
二、明日完成
在controller中补充GET DELETE 和PUT方法,使用postman进行测试
三、遇到的问题
感谢师兄,目前遇到的问题即今日所学,已经基本解决
四、收获
“能发现的bug都不是bug”这条准测得好好学习和领悟。
评论