spring

  1. ApplicationContext 有三个实现类:1. ClassPathXmlApplicationContext : 用于读取类路径下的配置文件,创建IOC容器;
    2. FilePSystemXmlApplicationContext :用于读取文件系统中的配置文件,创建IOC容器;
    3. AnnotationCOnfigApplicationContext: 用于读取注解类来创建IOC容器。

  2. ApplicationContext 和 BeanFactory 的区别:BeanFactory:采用延迟加载的思想创建bean对象,就是什么时候用,什么时候创建对象。
    AplicationContext :具备BeanFactory 的功能,同时默认采用的立即加载的思想来创建bean 对象。可以根据配置调整为延迟加载。

  3. 创建bean 对象的三种形式: 1. 使用默认构造函数创建。要求必须有默认构造函数。默认构造函数不能有参数。
    都是在配置文件中创建对象 2. 使用工厂中的方法创建(静态工厂,即创建对象的方法是静态方法)
    3. 使用工厂中的方法创建(非静态工厂,即创建对象的方法是非静态方法)
    实际开发中,我们大多使用构造函数,因为是我们自己写的类,但是第三方提供的代码中,我们大多使用第二种或第三种。例如Mybatis中SQL Session的创建。

  4. bean 对象的作用范围改变:spring 中对象创建默认是单例模式的,可以通过配置改变。配置的属性是bean 标签的scope 属性。取值有:1. singleton:单例模式(默认);2. prototype:多例模式

  5. bean 对象的生命周期:
    1. 单例对象:出生:在IOC容器创建,对象出生。 容器在,对象就一直可以用。 容器销毁,对象消亡。
    2. 多例模式:什么时候用,什么时候创建对象。 在使用过程中,一直活着,,对象的销毁交给java 的垃圾回收器回收

  6. spring 的依赖注入有三种方式:1. 使用构造函数注入:在xml文件中配置使用标签《constructor-arg 》 标签的属性有:type、index、name、value、ref(指其他bean 对象)
    2. 使用set 方法注入:在xml文件中配置,涉及的标签:《property》 其属性有:name、value、ref。
    3. 使用注解注入:

  7. 使用spring 的ioc实现CRUD步骤:创建maven 导入依赖->创建数据库和写实体类->编写持久层代码 接口和实现类->编写业务层代码->创建配置文件导入约束->配置对象bean和数据源、

  8. 使用注解步骤:创建maven 导入坐标->使用@Component注解配置管理的资源->创建spring的xml 文件配置文件对注解的支持<context:component-scan base-package> 告诉spring要扫描的包-

  9. 常用的注解:
    用于创建对象的: 相当于《bean id=“” class="">
    @Component
    @Controller 用于表现层的注解。 @Service 用于业务层的注解。 @Repository:一般用于持久层的注解。

     用于注入数据的:    	相当于: <property name="" ref="">  <property name="" value=""> 
     		@Autowired  自动注入
     		@Qualifier :属性:value :指定的bean 的id。  与 @Autowired 一起使用。
     		@Resource  :直接按照bean 的id 注入。  属性:name:指定bean 的id 
     		@Value 		:注入基本类型和String 类型的。 属性:value:用于指定值。
     
     用于改变作用范围的:	相当于:<bean id="" class="" scope=""> 
     		@Scope  指定bean 的作用范围。  属性:value取值有:singleton、prototype、request、session、
     和生命周期有关的: 		相当于: :<bean id="" class="" init-method="" destroy-method="" /> 
     		@PostConstruct 用于指定初始化方法
     		@PreDestroy 	 用于指定销毁方法。 
    
  10. spring 中的新注解:
    @ComponentScan:用于指定spring在初始化容器时要扫描的包,相当于<context:component-scan base-package="">是一样的。
    @PropertySource:用于指定peoperties 文件的位置:属性value:用于指定文件位置,可以使用classpath: 关键字。
    @PropertySource(“classpath:jdbc.properties”)
    @Bean : 把当前的方法的返回值存入ioc容器。 属性:name:指定bean的id
    @Configuration 指定当前类是一个spring的配置类。
    @Import 引入其他配置类。

  11. 通过注解获取容器:ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfiguration.class);

  12. 动态代理:特点:字节码随用随加载。 分类:基于接口的动态代理和基于子类的动态代理。 作用:在不修改源码的基础上对方法进行增强。

  13. AOP: a.连接点:业务层中的方法
    b. 切入点:在连接点中(也就是业务层的方法)被增强了的方法叫做切入点。
    c.通知:抽取了重复代码的类叫做通知,因为抽取的类中方法的不同,通知又分为:前置通知、后置通知、异常通知、最终通知。
    d.切面:建立对应关系的过程。是切入点和通知的结合。

  14. spring 基于XML 的aop 配置步骤:a. 导入aspectJ 的坐标。 b. 吧通知类交给spring 来管理。
    c. 使用 aop:config标签开始aop 配置。 D.使用aop:aspect 标签配置切面。
    d. 在aop:aspect标签内部,使用对应的标签配置通知类型。

  15. 切入点表达式:通常情况下,我们都是对业务层的方法进行增强,所以切入点表达式都是切到业务层实现类。
    execution(* com.itheima.service.impl..(…))

  16. spring 为我们提供的功能类:操作关系型数据库的:JdbcTemplate、HibernateTemplate。 b. 操作nosql 数据库的:RedisTemplate。 c.操作消息队列的:JmsTemplate。

  17. spring 导坐标:spring-context 、 spring-jdbc、

  18. 真正管理事务的对象
    org.springframework.jdbc.datasource.DataSourceTransactionManager 使用 Spring JDBC 或 iBatis 进行持久化数据时使用
    org.springframework.orm.hibernate5.HibernateTransactionManager 使用 Hibernate 版本进行持久化数据时使用

  19. Spring依赖注入Bean实例默认是单例的 .

  20. Spring 中bean 的作用域和生命周期:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值