callable与runable区别?switch char ?sql只查是否存在,sql复制表 ?反射 ? spring mvc 和spring 上下文区别?

时间:2024-12-12 14:04:14

中化技术部  2018.4.16

1. callable 和 thread 区别

  实现Callable接口的线程能返回执行结果,而Runable 不可以 。 Callable 的call方法允许抛出异常。

  由于Callable 可以返回执行结果,如果一个事情能分成多不去做,然后合并结果,就可以使用Callable

 public interface Callable<V> {
V call() throws Exception;
}
 public interface Runnable {
public abstract void run();
} 2. swithc case 支持byte short char int String(java 7之后) 和 枚举 。 3. select 1 from where con limit 0,1; 复制 create table 新表 like 旧表 。。
                        create table 新表 select * from 旧表(表结构和数据都会复制) 4. 反射几种方式
  什么是反射: java反射机制就是在运行状态中,对于任何一个类,都能够知道这个类的所有属性和方法,对于任何一个对象,都能够调用它的属性和方法。这种动态获取类的信息和调用对象的方法
  的功能就成为反射。。
  几种方式
  对象.getClass(); 对象都有了,还反射什么
  类.class; 没有第三种灵活
  Class.forName(全路径名) 5. spring mvc 和 spring 上下文关系
  父子关系。spring mvc 对应的上下文是spring的 子上下文,可以访问spring 上下文中的属性 。
  参考: https://www.cnblogs.com/huntdream/p/6012390.html
    

所谓传统型,就是action、service、dao三层架构,基于复杂业务的大公司开发模式。

对这种模式,一般spring上下文控制在service、dao两层,事物完整性也是在service层控制;而springmvc-servlet控制action层。

这样的结果导致以下调用关系:

  • action可以调用service、dao;
  • service、dao不能调用action;
  • spring上下文容器的aop不能应用到action层,但是可以通过在springmvc-servlet.xml中定义来做到类似事情。
         //spring的上下文
        WebApplicationContext ac1 = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
        //springMVC的上下文
        WebApplicationContext ac2 = RequestContextUtils.getWebApplicationContext(request);