spring框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring框架相关的知识,希望对你有一定的参考价值。

Spring的bean管理(注解)

  1、代码里面特殊标记,使用注解可以完成相应功能

  2、注解写法@注解名称(属性名称=属性值)

  3、类,方法,属性(注解使用)

spring注解开发准备
  1、导入基本的jar包及aop的jar包(有关注解的jar包)
  2、创建类,创建方法
  3、创建spring配置文件,引入约束
    spring的ioc注解开发,引入新的约束
  4、开启注解扫描

@Component:组件(作用在类上)

  Spring中提供@Component的三个衍生注解:(功能目前来讲是一致的)

    @Controller :web层

    @Service :业务层

    @Repository :持久层

注解创建对象

  1、在创建对象的类上面使用注解实现

  2、创建对象的四个注解

注解注入属性 @Autowired自动装配

  1、创建Service类,创建Dao类,在service得到dao对象

  2、@Resource(name="userDao"):name属性值 写 注解创建dao对象value

配置文件和注解混合使用

  1、创建对象操作使用配置文件方式实现

  2、注入属性的操作使用注解方式实现

AOP

  aop:面向切面编程,扩展功能不修改源代码实现

  aop采取横向抽取机制,取代了传统纵向继承体系重复性

AOP底层原理

  动态代理实现

AOP操作术语

  Joinpoint(连接点):

    在类里面可以被增强的方法法,这些方法称为连接点

  Pointcut(切入点)

    在类里面可以有很多的方法被增强,实际增强的方法成为切入点

  Advice(通知/增强)

    增强的逻辑,称为增强,比如扩展日志功能,这个日志功能成为增强

      前置通知:在方法前执行

      后置通知:在方法后执行

      异常通知:在方法发生异常执行

      最终通知:在后置之后执行

      环绕通知:

  Aspect(切面)

    把增强应用到具体方法上面的过程称为切面

    (把增强用到切入点的过程)

spring的aop操作(基于aspectj的xml方式

  1、在spring里面进行aop操作,使用aspectj实现

    aspectj不是spring一部分,和spring一起使用进行aop操作

    spring2.0以后新增了对AspectJ支持

  2、使用aspectj实现aop有两种方式

    基于aspectj的xml配置

    基于aspectj的注解方式

AOP操作准备

  1、除了导入基本的jar包之外,还需要导入aop相关的jar包

  2、创建spring核心配置,导入aop约束

使用表达式配置切入点

  1、切入点,实际增强的方法

  2、常用的表达式

    execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)

    execution(* *.*(..))

log4j介绍

  1、通过log4j可以看到程序运行过程中更详细的信息

    经常使用log4j查看日志

  2、使用

    导入log4j的jar包

    复制log4j。properties的复制文件,复制到src下面

  3、设置日志级别

    log4j.rootLogger=info,stdout

    info:看到基本信息

    debug:看到更详细信息

spring整合web项目演示

  1、演示问题

   (1)action调用service,service调用dao

    每次访问action时候,都会加载spring配置文件

  2、解决方案

  (1)在服务器启动时,创建对象加载配置文件

  (2)底层使用监听器、ServletContext对象

  3、在spring中不需要我们自己写代码实现,已经帮助我们封装

  (1)封装了一个监听器,只需要配置监听器就可以了

  (2)配置监听器之前做一些事情:导入spring整合web项目的jar包(spring-web.jar)

  (3)指定加载spring配置文件位置

1 <context-param>
2     <param-name>contextConfigLocation</param-name>
3     <param-value>classpath:bean1.xml</param-value>
4 </context-param>

 

 

 

    






以上是关于spring框架的主要内容,如果未能解决你的问题,请参考以下文章

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

Spring boot:thymeleaf 没有正确渲染片段

What's the difference between @Component, @Repository & @Service annotations in Spring?(代码片段

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段