发表于: 2017-09-05 23:19:45

1 888


一、今日完成

今天上午请假逃学半天,下午和晚上找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”这条准测得好好学习和领悟。



返回列表 返回列表
评论

    分享到