Spring学习

来源:互联网 发布:oracle启动数据库命令 编辑:程序博客网 时间:2024/06/07 07:18

一、 Spring

  1. Spring概述:spring使用简单的POJO(普通的java对象)进行开发,每一个被spring管理的java对象都称之为Bean;而spring提供了一个IOC容器来初始化对象,解决对象间的依赖管理和对象的使用。
  2. Spring的jar包:
    1) 核心容器(core container)
    Spring-Core:核心工具类;
    Spring-Beans:Spring 定义Bean的支持;
    Spring-Expression:使用表达式语言在运行时查询和操作对象
    2) AOP
    Spring-Aop:基于代理的AOP支持;
    Spring-Aspects:基于AspectJ的AOP支持;
    3) Web
    Spring-Web:提供基础的Web集成功能,在web项目中提供spring的容器;
    Spring-Webmvc:提供基于Servlet的springmvc;
    4) 数据库访问
    Spring-JDBC:提供以JDBC访问数据的支持;
    Spring-TX:提供编程式和声明式的事物支持;
    Spring-ORM:提供对象/关系映射技术的支持;
    Spring-OXM:提供对对象/XML映射技术的支持;
  3. Spring框架本身的四大原则:
    1) 使用POJO进行轻量级和最小侵入式开发;
    2) 通过依赖注入和基于接口编程实现松耦合;(软件设计中的“耦合”指,两个功能函数之间的依赖程度。很多设计模式就是为了解决紧耦合的问题。如果两个组件耦合太紧,则说明一个组件和另一个组件直接相关,这样的话,如果修改一个组件的逻辑,那么另外一个组件的逻辑也需修改。)
    3) 通过AOP和默认习惯进行声明式编程;
    4) 通过AOP和模板(template)减少模式化代码;
  4. 声明Bean的注解:
     @Component组件,没有明确的角色。
     @Service在业务逻辑层(service层)使用。
     @Repository在数据访问层(dao层)使用。
     @Controller在展现层(SpringMVC)使用。
     @Configuration表明当前类是一个配置类
    注入Bean的注解,一般情况下通用:
     @Autowired:Spring提供的注解。(可注解在set方法或者属性上)
     @Inject:JSR-330提供的注解。
     @Resource:JSR-250提供的注解
  5. AOP:面向切面编程,相当于OOP面向对象编程,存在目的为了解耦。
    1) 在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。
    2) 使用@Aspect声明这是一个切面。
    3) 使用@After、@Before、@Around定义建言(advice),可直接将拦截规则(切点)作为参数。
  6. 条件注解@Conditional根据满足某个特定条件创建一个特定的Bean。(通过实现Condition接口,并重写其matches方法来构造判断条件)
原创粉丝点击