zoukankan      html  css  js  c++  java
  • spring 框架

    spring 框架

    • 基于java的轻量级J2EE应用框架,服务于整个J2EE开发过程。spring在web开发的各层都提供了自己的解决方案。

                                |   表现层 :servlet  jsp  struts2        ->  spring mvc (spring的一个模块)

               web分层   |   业务逻辑层:service(业务相关)      ->  bean管理,AOP,事务管理

                                |   数据层:jdbc hibernate mybatis  ->  spring jdbcTemplate(不常用的)

    • 有 EJB (Enterprice Java Bean) 演变而来
    • 核心 jar 包  (补充:同名jar包有三份,出来本身的一份,还有doc说明文档,source源码)

                        

    • 核心技术

                IOC(Inversion of control) 控制反转 :程序将对资源的控制权反转给spring   spring是通过工厂模式和配置文件实现控制反转的

                DI(Dependency Injection) 依赖注入:程序被动的等待spring为其注入资源      IOC和DI其实是同一件事

                  类中属性最好都写上set/get方法,DI是依据set/get方法找到对应属性名的

                   

                AOP 面向切面编程

    • applicationContext.xml

               实例情景:student类中注入address类    

               spring 认为所有的资源都是bean ,所以在xml中配置资源就是配置bean

               

              setter注入属性的时候,<property> 元素中的name=值,值找的是set方法后半部分的内容.不是根据属性名称找的,而是根据属性的set方法找的值。

              还有一种注入方式:构造器注入,<constructor-args name=”形参名” value=”属性值”/>

              main方法中进行测试

              

    • spring工厂类

               在上述实例中的main方法中,首先创建了一个spring工厂类,然后从工厂类中取出资源

              FileSystemXmlApplicationContext                                   加载配置文件时,初始化bean对象           延迟加载,使用bean时才进行初始化

                                                                         2个实现类      ->           ApplicationContext (接口)            ->        BeanFactory (根接口)

             ClassPathXmlApplicationContext

                     自我理解:

                     在用ApplicationContext 工厂类的时候,加载配置文件时,初始化bean对象,此时就已经创建了一个bean ,相当于new了一个对象在spring容器中。当我们需要用的时候

                     再拿出来用,类似数据库连接池。通常bean的作用域是singlegon单例的,即每次用这个bean的时候内存地址相同,用的是一个。可以设置非单例(prototype),这样每次

                     会创建新的bean提供使用。 

    • p命名空间,表达式语言(SpEL:spring Expression Language)都是为了简化配置文件
    • 团队开发,避免xml混乱   <impor resource = "applicationContext.xml"/>
  • 相关阅读:
    AtCoder Grand Contest 005F
    AtCoder Regular Contest 095E
    插头DP--URAL1519Formula 1
    「CodePlus 2018 3 月赛」白金元首与莫斯科
    hdu 5795
    hdu 5800
    HDU5802
    hdu 5787 数位dp,记忆化搜索
    poj 1015
    hdu 3092 (简化的素数打表+dp+log的用法) ps(开数组和预处理时数组要大点处理多一点。。。)
  • 原文地址:https://www.cnblogs.com/sycamore0802/p/11176849.html
Copyright © 2011-2022 走看看