发表于: 2017-10-30 23:00:34

1 672


一.今日完成

1.任务代码发布到线上,打开修真院主页,只有文字,缺少图片和布局;chrome browser控制台提示:

向师兄请教后,在Spring 配置文件中加入以下元素:

 
<context:annotation-config/>
 
<mvc:annotation-driven />
 
<mvc:default-servlet-handler />

成功解决问题.

其中三者作用分别是:

(1)<context:annotation-config/>的作用是向Spring容器注册以下四个BeanPostProcessor:

AutowiredAnnotationBeanPostProcessor

CommonAnnotationBeanPostProcessor

PersistenceAnnotationBeanPostProcessor

RequiredAnnotationBeanPostProcessor

1)如果想使用@Autowired注解,那么就必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。

2)如果想使用@ Resource 、@ PostConstruct、@ PreDestroy等注解就必须声明CommonAnnotationBeanPostProcessor  Bean。

3)如果想使用@PersistenceContext注解,就必须声明PersistenceAnnotationBeanPostProcessor的Bean。

4)如果想使用@Required的注解,就必须声明RequiredAnnotationBeanPostProcessor的Bean。

按照传统的方式进行配置将会非常繁琐,Spring提供了一个简便的方式:<context:annotation-config/>,使用该元素可以自动声明以上注解。

由于<context:component-scan base-package=”xx.xx”/>也包含了自动注入上述Bean的功能,所以<context:annotation-config/> 可以省略。如果两者都进行了配置,则只有前者有效。由于前者配置项目包名异常("com.oab.quagga"),所以这里单独再声明<context:annotation-config/> 

<!-- 自动扫描  @Controller-->
<context:component-scan base-package="com.oab.quagga"/>

(2)<context:component-scan/>标签是告诉Spring 来扫描指定包下的类,并注册被@Component,@Controller,@Service,@Repository等注解标记的组件。而<mvc:annotation-driven/>是告知Spring,启用注解驱动。然后Spring会自动注册以上的Bean到工厂中,来处理请求。


(3)在springMVC-servlet.xml中配置<mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。

一般Web应用服务器默认的Servlet名称是"default",因此DefaultServletHttpRequestHandler可以找到它。如果默认Servlet名称不是"default",则需要通过default-servlet-name属性显示指定:

<mvc:default-servlet-handler default-servlet-name="所使用的Web服务器默认使用的Servlet名称" />


2.引入第三方API,在pom.xml文件中引入依赖,IDEA提示找不到相应jar文件,直接把容联,SendCloud等提供的jar包引入项目lib库即可,打包发布时候也会被封装进去.


3.测试短信验证功能,新建一个随机数生成类,在向注册者发送验证码时候调用相关方法产生随机六位数字

public class RandNum {
/**
    * 产生随机的六位数
    */
   public static String getSix(){
Random rad=new Random();

String result  = rad.nextInt(1000000) +"";

if(result.length()!=6){
return getSix();
}
return result;
}

//生成六位数验证码
   public static void main(String[] args) {
for (int j = 0; j < 10; j++) {
System.out.println(getSix());
}
}
}


二.明日计划

1.梳理Spring MVC框架里applicationContext和WebapplicationContext这两个业务层与web层容器配置信息,了解谷歌元素的作用;

2.继续整理任务代码,完成API调用功能.


三.遇到问题

暂无


四.收获

以上.



返回列表 返回列表
评论

    分享到