Spring基础、IOC、SpringMVC-创新互联

前言

Spring基础、IOC、SpringMVC
博客地址:芒果橙的个人博客 【http://mangocheng.com】

成都创新互联公司是一家集网站建设,城子河企业网站建设,城子河品牌网站建设,网站定制,城子河网站建设报价,网络营销,网络优化,城子河网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
一、常见问题 1. 基础信息
  • 描述:轻量级开发框架,旨在提高开发效率及系统的可维护性。

  • 模块:核心容器、数据访问/集成、Web、AOP、工具、消息、测试模块

  • 特征

    • 核心技术:DI、AOP、events、资源…
    • 数据访问
2. RestController vs Controller
  • 返回

    • Controller 返回一个页面(不加@ResponseBody)

    • RestController 返回对象:JSON或XML数据,对象数据直接写入HTTP响应,属于RESTful Web服务(前后端分离)

3. Spring IoC & AOP
  • IoC:Inverse of Control ,控制反转。[依赖倒置原则][https://www.zhihu.com/question/23277575/answer/169698662]
    • 一种设计思想,将原本在程序中手动创建对象的控制权交由Spring框架来管理。IoC容器是Spring用来实现IOC的载体,Map结构。
    • 类似工厂,当需要创建一个对象时,只需配置好配置文件/注解即可
  • 实现方式
    • DI
  • AOP:Aspect Oriented Programming,面向切面编程。
    • 将与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低耦合度,提高可拓展性和可维护性。
    • 基于动态代理
  • JNDI:Java Naming and Directory Interface,Java命名和目录接口)
    • SUN公司提供的一种标准的Java命名系统接口
    • JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。
4. Spring单例与线程安全
  • @Component和@Bean

    • @Component 作用于类,@Bean作用于方法
  • 将一个类声明为Spring的bean的注解

    • @Component:通用
    • @Repository:持久层,DAO
    • @Service:服务层
    • @Controller:Spring MVC控制层
  • 在类中注入属性对象的注解

    • Autowired
    • Resource
    • Qualifier
5. Spring MVC
  1. Model1时代:JSP为主体
  2. Model2时代:Java Bean(Model)+JSP(View)+Servlet(Controller)–JavaWeb MVC
  3. Spring MVC:对客户端的请求通过后端分层调用方式,将视图数据返回客户端
    1. 浏览器发送请求到后端DispatcherServlet,由Servlet找到对应的Handler类(控制层)
    2. Handler类调用处理器处理相应逻辑,返回ModelAndView(模型视图对象)
    3. ViewResolver(视图解析器)找到View,DisapterServlet将Model传给View,并返回给浏览器进行渲染
二、IOC

获得依赖对象的过程被反转了

1.DI:dependency Injection(依赖注入)
  • 描述:由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。即将实例变量传入到一个对象中去。
  • 理解
    • 找IOC容器==>容器返回对象==>使用对象
    • 房屋中介(找中介==>中介介绍房子==>租房入住)
2.Bean配置
  • 描述:在Spring中,每一个对象都是一个bean

  • 使用方式

    • 注解

    • xml配置

      public class UserServiceImpl implements UserService{private UserDAO userDAO;
          
          // 构造注入
          public UserServiceImpl(UserDAO userDAO){this.userDAO = userDAO;
          }
          
          // 设值注入
          public void setUserDAO(UserDAO userDAO){this.userDAO = userDAO;
          }
          
      }
  • 配置项

    • Id
    • Class
    • scope
  • 作用域

    • singleton:单例,指一个Bean容器中只能存在一份,默认

    • prototype:每次请求(每次使用)创建新的实例,destroy方式不生效

    • request:每次http请求创建一个实例且仅在当前request内有效

    • session:同上,每次http请求创建,当前session内有效

    • global session:基于portlet的web中有效,如果在web中,同session

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文标题:Spring基础、IOC、SpringMVC-创新互联
分享网址:http://pwwzsj.com/article/dcpccg.html