一个最简单的产品展示的asp网站应该如何做,客源引流推广app,伊宁网站建设,中国建设银行浙江分行网站Spring 框架的好处 1、轻量#xff1a;spring是轻量的#xff0c;基本的版本大约2MB#xff1b; 2、IOC#xff1a;控制反转#xff0c;Spring的IOC机制使得对象之间的依赖不再需要我们自己来控制了#xff0c;而是由容易来控制#xff0c;一个字#xff1a;爽#xf…Spring 框架的好处 1、轻量spring是轻量的基本的版本大约2MB 2、IOC控制反转Spring的IOC机制使得对象之间的依赖不再需要我们自己来控制了而是由容易来控制一个字爽 3、AOP切面编程Spring提供的AOP技术可以把应用逻辑和系统服务分来编码更灵活更方便 4、MVC框架如果使用过Struts2的同学使用springmvc就会觉得非常的舒适spring提供的mvc框架是一个非常优秀的Web框架 5、全局事务管理Spring提供一个持续的事务管理接口可以扩展到上至本地事务下至全局事务 6、统一异常处理 
Autowired 和 Resource 注解的区别 共同点都是做bean注入时使用的都可以写在字段或者setter方法上面 不同点 1、包归属不同Autowired是Spring提供的注解Resource是javax提供的注解 2、寻找bean的方式不同Resource默认是优先根据名称查找bean而Autowired默认是优先根据类型查找bean 
SpringMVC的运行机制 这个问题已经很古老的很多面试官也不会问因为大家的侧重点都是在分布式高并发还有场景问题上。SpringMVC的处理请求过程或者说运行机制吧大家可以通过设计模式的方式来去学习。 
MVC模式 MVC分别代表了Model、View、Controller三个处理节点 C控制器层用于接受请求调用业务类最后派发页面 M数据模型层包含service、dao、entity主要是处理业务数据并返回处理结果 V视图渲染层主要为了渲染页面。 在当前前后端分离已经成为了一个常态的情况下V已经逐渐淡化了但是在5年前前后端分离还没有那么的成熟如果回到2016年当时主流前端线下课都还没有vue2的课程存在就是三大框架jquery那么mvc这个模式就是老子天下第一 
工作原理  springmvc主要通过中央处理器DispatcherServlet来统一调度。如下图所示 Bean的生命周期  经典的问题。提到生命周期我们应该想到的是spring能够IOC其实就是保存了一个bean的实例池所以生命周期的前期一定是实例化和初始化实例化就是把对象在内存空间中分配出来初始化就是给对象的属性赋值。当一个bean完成了使命后就要面临销毁就会有一个销毁的过程。 只不过为了方便扩展spring把实例化和初始化的过程进行了多重封装方便开发者去介入bean的实例化过程。具体如下 1、实例化 Bean   对于 BeanFactory 容器当客户向容器请求一个尚未初始化的 bean 时或初始化 bean 的时候需要 注 入 另 一 个 尚 未 初 始 化 的 依 赖 时  容 器 就 会 调 用 createBean 进 行 实 例 化 。 对于 ApplicationContext容器当容器启动结束后通过获取 BeanDefinition 对象中的信息实例 化所有的 bean。 2、设置对象属性依赖注入  实例化后的对象被封装在 BeanWrapper  对象中紧接着 Spring  根据  BeanDefinition  中的信  息以及通过 BeanWrapper 提供的设置属性的接口完成依赖注入。 3、处理 Aware 接口         接着Spring 会检测该对象是否实现了 xxxAware 接口并将相关的 xxxAware 实例注入 Bean  如果这个 Bean 已经实现了 BeanNameAware 接口会调用它实现的 setBeanName(String beanId方法此处传递的就是 Spring 配置文件中 Bean 的 id 值 如果这个 Bean 已经实现了 BeanFactoryAware 接口会调用它实现的 setBeanFactory(方法传递的是 Spring 工厂自身。 如果这个 Bean 已经实现了 ApplicationContextAware 接口会调用setApplicationContext (ApplicationContext方法传入Spring上下文         4、BeanPostProcessor          如果想对 Bean 进行一些自定义的处理那么可以让 Bean 实现了 BeanPostProcessor 接口那将会调用 postProcessBeforeInitialization(Object obj, Strings方法。         5、InitializingBean 与 init-method           如果 Bean 在 Spring 配置文件中配置了 init-method 属性则会自动调用其配置的初始化方法 6、 如果这个Bean实现了BeanPostProcessor 接口将会调用postProcessAfterInitialization (Object obj, Strings方法由于这个方法是在 Bean 初始化结束时调用的所以可以被应用于内存或缓存技术 7、DisposableBean  当 Bean 不再需要时会经过清理阶段如果 Bean 实现了 DisposableBean 这个接口会调用其实现 的 destroy(方法 8、destroy-method  最后如果这个 Bean 的 Spring 配置中配置了 destroy-method 属性会自动调用其配置的销 毁方法。 spring框架中都用到了哪些设计模式 
1、简单工厂模式 Spring 中的 BeanFactory 就是简单工厂模式的体现。根据传入一个唯一的标识来获得Bean 对象但是在传入参数后创建还是传入参数前创建要根据具体情况来定。  2、工厂模式   Spring  中的  FactoryBean  就是典型的工厂方法模式实现了  FactoryBean  接口的  bean  是一类叫做  factory  的  bean 。其特点是 spring  在使用  getBean()  调用获得该  bean  时  会自动调 用该  bean  的  getObject()  方法所以返回的不是  factory  这个  bean 而是这个  bean.getOjbect() 方法的返回值。  3、单例模式 在  spring  中用到的单例模式有scopesingleton 注册式单例模式 bean  存放  于  Map  中。 bean name  当做  key   bean  当做  value 。  4、原型模式 在  spring  中用到的原型模式有scopeprototype 每次获取的是通过克隆生成的新实例对其进行修改时对原有实例对象不造成任何影响。  5、代理模式   Spring  中经典的  AOP 就是使用动态代理实现的分  JDK  和  CGlib  动态代理。  6、适配器模式   Spring  中的  AOP  中  AdvisorAdapter  类它有三个实现  MethodBeforAdviceAdapter 、  AfterReturnningAdviceAdapter 、  ThrowsAdviceAdapter 。  Spring  会根据不同的  AOP  配置来使用对应的  Advice 与策略模式不同的是一个方法可以同时拥有多  个 Advice。 Spring  存在很多以  Adapter  结尾的大多数都是适配器模式。  7、观察者模式   Spring  中的  Event  和  Listener 。 spring  事件 ApplicationEvent 该抽象类继  承了  EventObject  类 JDK  建议所有的事件都应该继承自  EventObject 。 spring  事件监听器  ApplicationListener 该接口继承了  EventListener  接口 JDK  建议所有的事件监听器都应该  继承  EventListener 。  8、模板模式   Spring  中的  org.springframework.jdbc.core.JdbcTemplate  就是非常经典的模板模  式的应用里面的  execute  方法把整个算法步骤都定义好了。 Spring是怎么解决循环依赖的 一句话就是spring是通过三级缓存来解决循环依赖的所以如果有人问spring的三级缓存是干什么的也是一样的是解决循环依赖问题的。具体来说就是A依赖BB依赖CC又依赖了A产生了循环。spring在实例化Bean的过程中当发现有一个属性是对象就会尝试去获取这个对象的bean递归调用又调用回来了发现自身还在创建中那么说明发生了循环依赖。解决流程如下 1、A先初始化第一步提前把自己暴露出来通过一个对象工厂的方式存在三级缓存中 
当发现依赖对象B时就尝试获取B的bean 2、B没有创建走创建流程发现自己依赖的C也没有创建 3、C走创建流程发现依赖A此时A在三级缓存中通过 ObjectFactory#getObject() 方法来拿到 A 对象此时C顺利完成初始化并将自己添加到一级缓存中 4、B拿到了C的bean也完成了初始化将自己添加到一级缓存中 5、A又拿到了B的bean完成了初始化将自己添加到一级缓存中 
Spring事务传播级别 Spring 事务定义了 7 种传播机制  1. PROPAGATION_REQUIRED默认的 Spring 事务传播级别若当前存在事务则加入该事务若不存在事务则新建一个事务。  2. PAOPAGATION_REQUIRE_NEW若当前没有事务则新建一个事务。若当前存在事务则新建一个事务新老事务相互独立。外部事务抛出异常回滚不会影响内部事务的正常提交。 3. PROPAGATION_NESTED如果当前存在事务则嵌套在当前事务中执行。如果当前没有事务则新建一个事务类似于 REQUIRE_NEW。  4. PROPAGATION_SUPPORTS支持当前事务若当前不存在事务以非事务的方式执行。  5. PROPAGATION_NOT_SUPPORTED以非事务的方式执行若当前存在事务则把当前事务挂起。  6. PROPAGATION_MANDATORY强制事务执行若当前不存在事务则抛出异常.  7. PROPAGATION_NEVER以非事务的方式执行如果当前存在事务则抛出异常。