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

Spring入门篇

moocer JAVA开发工程师
难度中级
时长 7小时 0分
  • Bean生命周期:定义——初始化——使用——销毁 一、初始化: 方法1.实现org.springframework.beans.foctory.InitializingBean接口,覆盖afterPropertiesSet方法。系统会自动查找afterPropertiesSet方法,执行其中的初始化操作。 方法2.配置init-method 例如设置bean中init-method="init"那么在初始化过程中就会调用相应class指定类的init()方法进行初始化工作。 二、销毁(与初始化类似): 方法1.实现org.springframework.beans.foctory.DisposableBean接口,覆盖destory方法。 方法2.配置destory-method。 三、配置全局初始化、销毁方法(属于默认配置,参考截图) 注意: 1、当三种方式同时使用时,全局(默认的)初始化销毁方法会被覆盖。 2、另外实现接口的初始化/销毁方式会先于配置文件中的初始化/销毁方式执行,然后再执行配置的。//初始化(接口式)——初始化(<bean>标签配置)——销毁(接口式)——销毁(<bean>标签配置) 3、即使没有以上三种初始化方法也是可以编译执行。 4、如果配置全局初始化、销毁,但没有写对应方法,则可通过编译;如果在<bean>标签中配置初始化、销毁,但没有写对应方法,则报错。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 相关代码: @spring-beanscope.xml <bean id="beanScope" class="BeanScope" scope="singleton"></bean> @UnitTestBase.java ...省略 @BeanScope.java public class BeanScope { public void say(){ System.out.println("BeanScope say:"+this.hashCode()); } } @TestBeanScope.java @RunWith(BlockJUnit4ClassRunner.class) public class TestBeanScope extends UnitTestBase{ public TestBeanScope(){ super("classpath*:spring-beanscope.xml"); } /** * scope="singleton"时,hashCode相同 * scope="prototype"时,hashCode不同 * 注意:如果写成两个方法,如果是@Test的两个方法,则无论是scope="任何",hashCode都不同,因为这是测试单元的问题(每调用一个测试单元,则重新部署@Before、@After); * 但如果是普通的两个方法,则hashCode是否相等取决于scope为什么模式。 */ @Test public void testSay1() { BeanScope beanScope1 = super.getBean("beanScope"); beanScope1.say(); testSay2(); /*BeanScope beanScope2 = super.getBean("beanScope"); beanScope2.say();*/ } public void testSay2() { BeanScope beanScope3 = super.getBean("beanScope"); beanScope3.say(); } } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • Bean的常用配置项:(理论上只有class是必须的) id:唯一标识 class:具体是哪一个类 scope:范围 constructor arguments:构造器的参数 properties:属性 Autowiring mode:自动装配模式 lazy-initialization mode:懒加载模式 initialization/destruction method:初始化/销毁的方法 Ps1:[,\\s]+:“,”或“\s”至少出现一次。 注意:Java中的“\\s”(转义字符)相当于正则表达式的“\s”。 Ps2:scope属性中的其中两个值:singleton和prototype(scope默认:singleton): 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 相关代码——(下): public class UnitTestBase { private ClassPathXmlApplicationContext context; private String springXmlpath; public UnitTestBase() {} public UnitTestBase(String springXmlpath) { this.springXmlpath = springXmlpath; } @Before public void before() { if (StringUtils.isEmpty(springXmlpath)) { springXmlpath = "classpath*:spring-*.xml"; } try { context = new ClassPathXmlApplicationContext(springXmlpath.split("[,\\s]+")); context.start(); } catch (BeansException e) { e.printStackTrace(); } } @After public void after() { context.destroy(); } @SuppressWarnings("unchecked") protected <T extends Object> T getBean(String beanId) { try { return (T)context.getBean(beanId); } catch (BeansException e) { e.printStackTrace(); return null; } } protected <T extends Object> T getBean(Class<T> clazz) { try { return context.getBean(clazz); } catch (BeansException e) { e.printStackTrace(); return null; } } }
    查看全部
    0 采集 收起 来源:Spring注入方式

    2018-03-22

  • 相关代码——(中): @TestInjection.java /** * 有没想过这问题:当你把测试代码交给JUnit框架,框架如何运行你的代码呢?答案——Runner。JUnit中有很多Runner,他们负责调用你的测试代码, * 每个Runner都有各自的特殊功能,要根据需要选择不同Runner来运行测试代码。可能你觉得奇怪,前面写了那么多测试,并没明确指定一个Runner? * 这因为JUnit有一个默认Runner,即BlockJUnit4ClassRunner,如果你没指定,那么系统自动使用默认Runner来运行你的代码。 */ @RunWith(BlockJUnit4ClassRunner.class) public class TestInjection extends UnitTestBase{ public TestInjection(){ super("classpath:spring-injection.xml"); } //设值注入 @Test public void testSetter(){ InjectionService service=super.getBean("injectionService"); service.save("设值注入_保存的数据"); } //构造注入 @Test public void testCons(){ InjectionService service=super.getBean("injectionService"); service.save("构造注入_保存的数据"); } } @spring-injection.xml <bean id="injectionService" class="InjectionServiceImpl"> <!--<property name="injectionDAO" ref="injectionDao"></property>--><!--设值注入--> <constructor-arg name="injectionDAO" ref="injectionDao"></constructor-arg><!--构造注入--> </bean> <bean id="injectionDao" class="InjectionDAOImpl"></bean>
    查看全部
    0 采集 收起 来源:Spring注入方式

    2018-03-22

  • 相关代码——(上): @InjectionDAO.java public interface InjectionDAO { public void save(String str); } @InjectionDAOImpl.java public class InjectionDAOImpl implements InjectionDAO{ public void save(String str) { //模拟数据库保存操作 System.out.println("保存数据:"+str); } } @InjectionService.java public interface InjectionService { public void save(String str); } @InjectionServiceImpl.java public class InjectionServiceImpl implements InjectionService{ private InjectionDAO injectionDAO; //设值注入:setXxx()中“Xxx”和<property name="Xxx"></property>一致 public void setInjectionDAO(InjectionDAO injectionDAO) { this.injectionDAO = injectionDAO; } //构造注入:(类型 xxx)中“xxx”和<constructor-arg name="xxx"></constructor>一致 public InjectionServiceImpl(InjectionDAO injectionDAO){ this.injectionDAO = injectionDAO; } public void save(String str) { //模拟业务操作 System.out.println("Service接收参数:"+str); str=str+":"+this.hashCode(); injectionDAO.save(str); } }
    查看全部
    0 采集 收起 来源:Spring注入方式

    2018-03-22

  • @构造注入(注入(初始化)时机:类似于构造函数) 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    0 采集 收起 来源:Spring注入方式

    2016-08-26

  • @设值注入(不需要显示地调用set方法,会根据xml的相关配置自动进行调用) 利用属性或成员变量的set方法进行注入,其中property里面的name是需要注入参数的成员变量的名称,ref是注入参数引入bean的名称。 注意:“ref”表示引用的意思。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    0 采集 收起 来源:Spring注入方式

    2016-08-26

  • 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    0 采集 收起 来源:Spring注入方式

    2016-08-26

  • Web应用:使用Servlet或Listener来实现。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    0 采集 收起 来源:IOC及Bean容器

    2016-08-26

  • 在IOC容器中将所有的控制对象称作bean,Spring对于bean的使用有两种方式:基于spring-ioc.xml的配置和注解。 注意xml中关于bean的配置程序段: <bean id="oneInterface(自定义)" class="配置的实现类"></bean> 使用示例: public void test(){ OneInterface interface=super.getBean("oneInterface");//获取bean,不需要new对象 interface.hello();//调用函数 } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    0 采集 收起 来源:IOC及Bean容器

    2018-03-22

  • Bean
    查看全部
    0 采集 收起 来源:IOC及Bean容器

    2016-04-09

  • @单元测试 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    0 采集 收起 来源:IOC及Bean容器

    2016-08-26

  • @IOC房屋中介 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    0 采集 收起 来源:IOC及Bean容器

    2016-08-26

  • @扩展理解 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    0 采集 收起 来源:IOC及Bean容器

    2016-08-26

举报

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

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