Spring知识点小记

版权声明:如果觉得文章对你有用,转载不需要联系作者,但请注明出处 https://blog.csdn.net/jinxin70/article/details/83818935
  1. Spring提供的Bean的作用域默认是单例的;
  2. Spring提供的Bean默认使用jdk动态代理生成的,jdk动态代理只能代理实现接口的类,Cglib代理可以代理没有接口的类;
  3. 同一个spring.xml中不可以定义两个id相同的bean;
  4. ClassPathXmlApplicationContext中有一个可变长度的构造函数,用于加载多个.xml中的bean,如果bean中有id相同,那么id相同的bean,后加载的会覆盖先加载的
  5. 如果.xml中配置了一个id为hello的bean,再用注解@Service("hello")配置一个Java类为Spring Bean,注解配置的会覆盖xml配置的,最终会执行注解配置的Bean;
  6. scope表示的是bean的作用域,有prototype、request、session、singleton四种,其中singleton是默认的,表示单例。prototype表示每次创建都会产生一个bean实例。request和session只在web项目中才会用,其作用域就和web中的request和session一样;
  7. lazy-init表示的是bean的生命周期,默认为false。当scope=singleton时,bean会在装在配置文件时实例化,如果希望bean在产生时才实例化,可以把lazy-init设置为true。当scope=prototype时,在产生bean时才会实例化它。补充一点,如果希望该配置文件中所有的bean都延迟初始化,则应该在beans根节点中使用lazy-init="true"

猜你喜欢

转载自blog.csdn.net/jinxin70/article/details/83818935