为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Spring入门篇_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Spring入门篇

moocer JAVA开发工程师
难度中级
时长 7小时 0分
  • @Configuration @bean
    查看全部
  • @Autowired @Resource @qualfier
    查看全部
  • bean初始化的配置文件写法 1. 默认初始化 2. 定义初始化
    查看全部
  • 初始化和销毁的方法: 1.在bean里添加init-method 和 destroy-method 在bean的初始化的时候,先调用init方法,销毁的的时候调用destroy方法 2、类继承InitializingBean,disposiblebean,重写初始化销毁方法 3、默认初始化和销毁方法 default-init-method defaut-destroy-method 三种同时定义的时候,只执行2、1,不会执行3;3的方法不强制定义
    查看全部
  • bean配置全局默认初始化、销毁方法
    查看全部
  • bean的销毁
    查看全部
  • bean的初始化方法init
    查看全部
  • bean的生命周期 1.定义 2.初始化 3.使用 4.销毁
    查看全部
  • 4.no模式 不使用自动装配,必需通过ref元素指定依赖(指定其他bean),这是默认设置. <bean id="a" class="com.own.entity.A" autowire="no" > <..> </bean> Spring自动装配中,要想注入Date类型的数据,必须使用autowire="constructor"方式通过构造器创建对象.或者不用自动装配使用ref属性.之前的自动装配笔记用到Date的例子错了,但用法上还是没问题.换成自定义类即可.
    查看全部
  • 3.通过构造参数(constructor)装配 constructor模式就是通过构造函数的参数类型来进行查找,再进行注入.可以说它是constructor的byType装配. public class A{ private String username; private int password; privat Date date public A(String username,int password,Date date){ this.username=username; this.password=password; this.date=date; } } <bean id="a" class="com.own.entity.A" autowire="constructor"> <constructor-arg name="username" value="admin"></constructor> <constructor-arg name="password" value="zht"></constructor> </bean> <bean id="date" class="java.util.Date"></bean> 实体类中有一个构造器来给所以属性初始化,也可以为每一个属性定义一个构造器,只要每个属性都有构造器来初始化即可. 一般是一个构造器来给全部属性初始化,或者为每一个属性对应一个构造器. 其中实体类中有一个java.util.Date类型的属性.在配置文件中只配置了username、password属性,并没有配置date属性.date属性会根据构造器参数类型进行自动装配的,与byType类型类似(byType是通过对象中属性的类型). Spring会自动在配置文件中查找对应类型的Bean进行注入(构造注入). 自动装配也是在IOC容器启动就开始执行. 把自动装配模式分3个步骤: 1.查找(byName、byType、constructor) 2.创建使用自动装配的对象(IOC内部new,使用<constructor-arg>的话,创建对象的时候,就伴随着注入) 3.注入(构造注入或设置注入)
    查看全部
  • 2.通过类型(byType)装配 byType就是通过类型来自动装配,系统会根据类型来给实体类的属性装配同样类型的bean,如果在配置文件中有多个同样的装配类型,那么就会抛出一个异常. public class A{ private String username; private Date date; set/get() } <bean id="a" class="com.own.entity.A" autowire="byType" > <property name="username" value="admin" /> </bean> <bean id="date" class="java.util.Date" /> 那么Spring在装配id为a的bean时,会自动根据类型来查找是否有类型为java.util.Date类型的bean.如果有的话就自动给bean装配上,如果没有相同类型的bean也不会出现错误,只是该属性不会被设置.这是用户不想出现的情况,这时就需要结合"bean依赖检查"来抛出异常. 如果有多个相同类型的bean,会抛出一个异常. 使用bean装配模式即省略了<property name="" ref=""/>或<consturctor-arg name="" ref=""/>标签的使用.
    查看全部
  • bean的4种装配模式 1.通过名称(byName) 2.通过类型(byType) 3.通过构造参数(constructor) 4.no模式 不管使用设置注入还是构造注入,很多时候都可能有很多变量或构造参数,那么在配置文件中就会配置很多的property或constructor-arg,Spring提供了4种装配模式来通过配置bean的autowire属性简化bean的配置. 1.通过名称(byName) public class A{ private String username; private Date date; set/get() } 使用autowire="byName"来根据名称自动注入. <bean id="a" class="com.own.entity.A" autowire="byName"> <property name="username" value="admin"/> <!-- <constructor-arg name="username" value="admin"/> --> </bean> <bean id="date" class="java.util.Date" /> 在A类有一个date属性,在bean中配置autowire="byName",然后在bean中就不需要配置date属性,它会根据名称来自动查找id为date的bean来装配这个bean的date属性,如果没有名称为date的bean也不会有异常. 如果存在两个id值相同的bean,那么IOC容器启动的时候就会失败.提示不能存在两个相同的id. 就是不需要通过<property name="date" ref="date"/>来装载bean,直接在bean中使用autowire="byName",自动通过属性名称寻找与属性名称相同的bean(要保证属性名与bean的id值相同). 也可以使用<constructor-arg>标签来配置属性.
    查看全部
  • 实现了Aware结尾的接口,要实现接口的方法.通过实现方法的参数就可以获取到相应的资源. 在bean被初始化之后,可以获取相应的资源,即实现ApplicationContextAware接口可以获取ApplicationContext资源. 实现ApplicationContextAware接口: public class A implements ApplicationContextAware{ public void setApplication(ApplicationContext context){ System.out.println(context.getBean("a").hasCode()); } } <bean id="a" class="com.own.entity.A" scope="singleton" /> IOC容器在初始化id为"a"的bean的时候,就会调用该bean实体类中实现ApplicationContextAware接口的setApplication()方法. 如果该bean使用了懒加载(lazy-init="true"),那么IOC容器会在使用到该bean的时候才初始化,并调用setApplication()方法. 尽管在setApplication()方法中通过getBean()获取该bean实例也是不行的,必须是在别的方法中使用到该bean,那么IOC容器就会初始化该bean,并执行setApplication()方法. 实现BeanNameAware接口: public class A implements BeanNameAware{ public void setBeanNameAware(String name){ System.out.println(name); } } <bean id="beanbean" class="com.own.entity.A" /> IOC容器在加载id为"beanbean"的bean的时候,就会调用该bean实体类中实现BeanNameAware接口的setBeanName(String name)方法.此方法的参数是该bean的id属性值. 在控制台会输出:beanbean 还有很多后缀为Aware的接口.
    查看全部
  • 当同时出现<beans default-init-method="">与<bean id="" class="" init-method="">与实现InitializaingBean接口时. 默认的初始化或销毁方法会失效,即default-init-method="",接口覆盖的方法先于定义指定的方法被调用. 且通过<beans default-init-method="">方式初始化或销毁,在bean的实体类中没有该指定的方法也是可以通过,不会报错,只是没有被初始化. 如果通过<bean init-method="">方式初始化或销毁,在bean的实体类中必须要存在该方法,否则会报错.
    查看全部
  • Spring容器可以使用start()与destroy()方法.前者表示开启容器,后者表示关闭容器.但是不手动开启的话仍然是可以用. ApplicationContext context=new ClassPathXmlApplicationContext("xxx.xml"); //手动开启容器. context.start(); //手动关闭容器. context.destroy();
    查看全部

举报

0/150
提交
取消
课程须知
Java的高级课程,适合对Java基础知识应用自如,并熟悉MVC架构的小伙伴们。如果想成为一名Java工程师,这门课程是一定要学哒。
老师告诉你能学到什么?
掌握依赖注入、IOC和AOP的概念,并能进行简单应用。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!