zoukankan      html  css  js  c++  java
  • spring知识点总结

    1.spring是什么,有什么特点?

    Spring是一个开源的容器性质的轻量级框架。

    三大特点: IOC DI AOP

    2.spring框架有哪些优点?

    一、容器,Spring框架是一个容器,能够管理项目中的所有对象

    二、IOC(控制反转),Spring框架将创建对象的方式反转了,从new一个对象变成了从容器中获取,或自动注入

    三、AOP(面向切面编程),简而言之,将纵向重复的代码抽取出来,Spring为容器中管理的对象生成动态代理对象

     切面代码如下

    @Aspect
    @Component
    public class CalculatorAspect {
        
        
        //声明该方法是一个前置通知:在目标方法开始之前执行
        @Before("execution(public int aop.impl.CalculatorImpl.add(int,int))")
        public void before(JoinPoint pt){
            String methodName = pt.getSignature().getName();
            List<Object> args  = Arrays.asList(pt.getArgs());
            System.out.println("之前的方法名字是"+methodName+"参数为:"+args);
        }

     3.IOC的作用

    解耦合

    4.什么是DI?

    DI就是依赖注入,需要有IOC环境,在Spring框架生成bean对象时,动态的将依赖对象注入到bean对象中去,同时也能解耦合

    5.Spring框架中BeanFactory 和ApplicationContext两种方式启动容器有什么差别?

         BeanFactory接口是最原始的接口,ApplicationContext是对BeanFactory的拓展,ApplicationContext会在加载配置文件时初始化Bean,而BeanFactory会等到使用某个bean时才会初始化相关bean

    7.Spring中bean标签的属性及用途

    name属性:bean的名称,在代码中获取手动获取bean时用到

    class属性:bean的类路径 从包一级开始

    id属性:bean的id,当其他bean引用该bean时用到   -ref

    scope属性:常见的两个属性值:singleton(单例),prototype(多例),默认是单例,即每次获取的bean都是同一个bean

    8.Spring通过配置<bean>标签来生成bean有哪三种方式?

    一。空参构造方式

    <bean id="shopDao" class="事务xml.ShopDaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate"></property>
        </bean>

    二。静态工厂方式

    三。实例工厂方式

    9.Spring中对bean的属性注入有哪些方式?

    注入方式最常用的是set方法注入,还有构造函数注入,p命名空间注入、spel注入,还有其他复杂注入如

    数组,List,map注入

    list注入如下

    <beans>
      <bean id="at" class="test.array.ArrayTest">
        <property name="names">
          <list>
            <value>aaa</value>
            <value>bbb</value>
          </list>
        </property>
      </bean>
    </beans>

    10.bean的生命周期

    bean的生命周期包括,bean的定义,bean的初始化,bean的调用,bean的销毁。

    在配置文件里面通过配置bean完成bean的定义,可以通过配置bean的 init-method方法设置bean的初始化方法

    得到bean的实例对象就是bean 的调用,配置bean的destory-method属性来设置bean的销毁方法

    11.如何开启Spring中的注解功能?

    在Spring的主配置文件中通过<context:component-scan base-package="包名" />来开启

    12.使用注解配置bean时有哪些注解方式,有什么区别?

    @Component  最早期只有这一个注解

    @Service @Controller @Repository ,功能上无区别,只用来区分bean所在的架构层

    13.什么注解指定对象的作用范围

    @Scope(scopeName="singleton")  指定bean为单例模式

    14.如何用注解来为属性注入值?

    @Value("值")   //直接对属性注入基本类型值

    @Autowired //自动装备该类型的值,有时要用到@Qualifier()来区分

    @Resource(name,type) //可以设置按名称或者按类型装配

    15.Spring如何实现AOP

    Spring  可以  为所有的Service层的类生成动态代理对象

    @Aspect
    @Component
    public class CalculatorAspect {
        
        
        //声明该方法是一个前置通知:在目标方法开始之前执行
        @Before("execution(public int aop.impl.CalculatorImpl.*(int,int))") //为该类下的所有方法加入前置通知
        public void before(JoinPoint pt){
            String methodName = pt.getSignature().getName();
            List<Object> args  = Arrays.asList(pt.getArgs());
            System.out.println("之前的方法名字是"+methodName+"参数为:"+args);
        }

     16.SpringAOP有那5种类型的通知?

    前置通知 @Before("execution(类的路径)")

    后置通知 @After()   //不管方法是否有异常都调用

    返回通知 @After-returning   //在方法无异常后调用通知

    异常通知 @After-throwing    //在方法抛出异常时调用通知

    环绕通知 @Around    //在方法执行之前   和之后都调用通知

     17.AOP名词理解

    Target   被代理的对象

    Advice  增强的代码(一个或多个方法)

    Proxy    将Advice植入Target后生成的代理对象,代理方式:jdk动态代理,cglib代理

    Joinpoint  连接点,目标对象中,所有可以增强的方法(单个方法)

    Pointcut 切入点,对哪些连接点进行增强的断言 ,这是把Advice和对象方法连接的关键,execution

    Aspect 切面,包含多个Advice的类,可以横切一个或多个Target对象

  • 相关阅读:
    技术文章阅读-Pi-Hole < 4.3.2 Command Injection & PrivEsc (CVE-2019-13051)
    技术文章阅读-d-link-routers-found-vulnerable-rce
    技术文章阅读-蜂网互联企业级路由器v4.31密码泄露漏洞
    使用mkcert工具自签https证书
    查询给定时间是否在当前周
    nodeJS 一些笔记
    手机端页面布局方案
    关于HTML5的应用缓存功能
    将伪数组转换为数组的方法
    Cookies的使用之购物车的实现
  • 原文地址:https://www.cnblogs.com/javarook/p/12574087.html
Copyright © 2011-2022 走看看