zoukankan      html  css  js  c++  java
  • 初学Java ssh之Spring 第二篇

      上一篇我们成功搭建好了spring开发的环境,接下来一起看看spring有什么神奇的地方吧(本人也是新手,有不太对的地方希望大神给指出便于修改呢,谢谢大家)。

      之前听说spring是在对xml文件的应用比较多,但是具体怎么用一直都是云里雾里,自己在刚开始的时候学习的时候,因为不是直接新建的web项目,没有自动生成applicationContext.xml,那会不知道这个配置文件是多么的重要,所以在写了如下一段代码之后,运行时,总是报错,还曾傻傻地以为该文件会自动生成,现在想想真可笑。不过如果用myeclipes中自动导入spring架包的功能的话,会自动生成的。现在提醒大家,对于applicationContext.xml一定要首先确认其的存在,再进行接下来的代码开发。(对于这种问题,大神们就不必细看了)

      applicationContext.xml代码我已在上一篇博客中给出,我存放在src目录下,在此我给出链接:http://www.cnblogs.com/speedwade/p/3968101.html

      接下来是我写的一个测试的小程序,看看,spring是否已经成功配好,路径我放在src目录下com.sep.basic包下,新建一个class类,命名为SpringTest。因为我已建好,所以会提示文件已存在,第一次新建时不会有该提示出现,如图

      然后其中代码为

     1 package com.sep.basic;
     2 
     3 import org.springframework.context.ApplicationContext;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 
     6 public class SpringTest {
     7     public static void main(String args[])
     8     {
     9         //创建applicationcontext
    10         ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    11         //输出spring容器
    12         System.out.println(ctx);
    13     }
    14 }

      在新建好的文件上鼠标右键点击Run As/Java Application后,在控制台会出现类似如下代码:

     1 org.springframework.context.support.ClassPathXmlApplicationContext@b749757: startup date [Mon Sep 15 17:21:18 CST 2014]; root of context hierarchy 

      下面我们来解释一下,在SpringTest.java中,我们仅仅创建了ApplicationContext的实例,而他正是Spring容器,只有获得了容器,我们才能成功访问容器中的Bean。输出的正是我们创建的ApplicationContext实例。Spring中大部分功能都是通过这个容器来实现的。所以可见它的强大。

      下面我们来新建一个简单的bean来看看Spring是怎么工作的。

      首先新建一个简单的java类文件,命名为FirstBeanTest,其路径为com.sep.basic.service包下。其代码为:

     1 package com.sep.basic.service;
     2 
     3 public class FirstBeanTest {
     4     private String name;
     5     //name属性的setter方法
     6     public void setName(String name) {
     7         this.name = name;
     8     }
     9     //测试类的info方法
    10     public void Info()
    11     {
    12         System.out.println("FirstBean's Name is "+name);
    13     }
    14 }

      上面给出了一个成员变量与他的set方法。

      然后在applicationContext.xml中添加下面代码:

    1 <!-- 将FirstBeanTest类部署到Spring中的bean中 -->
    2     <bean id="firstBeanTest" class="com.sep.basic.service.FirstBeanTest">
    3         <property name="name" value="success"></property>
    4     </bean>

      接下来再次回到SpringTest文件中增加代码如下:

    1 FirstBeanTest fbt = ctx.getBean("firstBeanTest",FirstBeanTest.class);
    2 
    3 fbt.Info();

      好,现在运行,可以看到输出语句:FirstBean's Name is success

      是不是很神奇?我们并没有手动去创建FirstBeanTest的实例,为什么还会成功的为其赋值呢?这就是Spring的职责了,我们只需要通过spring容器来就可以获得实例对象,并且可以赋值,这都是spring的功劳,spring会根据配置信息,获得对应的实例,并且为其设置对应的属性值。

      这种现象就是我们经常听说的控制反转(IOC)。

      

  • 相关阅读:
    alpha冲刺—Day8
    alpha冲刺—Day7
    alpha冲刺—冲刺计划&代码规范
    Linux安装jdk
    chrome插件开发-notification API注意事项
    VSCode远程连接Docker
    Idea发布项目到Docker
    开发环境配置
    Java设计模式之《单例模式》及应用场景
    使用Docker安装jenkins
  • 原文地址:https://www.cnblogs.com/speedwade/p/3973215.html
Copyright © 2011-2022 走看看