简单使用Spring注解 测试程序 非web程序

来源:互联网 发布:单片机市场占有率2015 编辑:程序博客网 时间:2024/05/07 15:10

前些时间一直在做前端,框架方面的知识都有些生疏,所以准备下笔记录一下,方便以后使用


首先就是研究一下Spring注解方面的知识。


我先使用的是非web程序,直接使用IDE(eclipse) 建立一个java project


引入spring 的jar包 以及commons - logging .jar

我用的是spring3.10

spring2.5以上的版本应该都可以使用本程序

spring官方下载地址是

http://repo.springsource.org/libs-release-local/org/springframework/spring/


接着呢创建spring配置文件


文件名为XXX.xml


XXX随意英文即可


<beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:context="http://www.springframework.org/schema/context"    xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    http://www.springframework.org/schema/context    http://www.springframework.org/schema/context/spring-context-2.5.xsd">     <context:component-scan base-package="com.importnew" /></beans>


<span style="font-size:24px;"><context:component-scan base-package="com.importnew" />这句话的意思是自动扫描base-package包下的所有带有注解的bean</span>


接着创建helloworld文件 HelloWorld.java


包为com.importnew

package com.importnew;import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Componentpublic class HelloWorld {        private String message;        public void setMessage(String message){        this.message  = message;    }     public String getMessage(){        return this.message;    }     public void printMessage(){        System.out.println("hello world");    }}


再创建MainApp.java

package com.importnew; import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp {    public static void main(String[] args) {         ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");         HelloWorld obj = (HelloWorld) context.getBean("helloWorld");         obj.printMessage();    }}


直接运行就可以得到我们要的结果 hello world



@Component
此注解 就代表着 这个类被spring 扫描 并且变为了bean


我们再创建一个类 Car.java



package com.importnew;import org.springframework.stereotype.Component;@Componentpublic class Car {private int value = 100;public int getValue() {return value;}public void setValue(int value) {this.value = value;}}

我们设置一个属性
<pre name="code" class="java">private int value = 100;


我们想得到这个值 但不想 通过new的方式 同样不希望用 get set 的方式  应该怎么样做呢


只需要在HelloWorld.java 中加入一行代码


@Autowired private Car car;
再加入一行输出语句

System.out.println("Your Message : " + car.getValue());


输出就变为了

Your Message :100



通过

<span style="font-size:24px;">@Autowired</span>
我们就将 car 装备到了属性中


那么如果给的类型是父类,注解装备的是子类,可以成功么?

是可以的。

如果子类父类都进行了装配,注入的是子类还是父类?

是父类

如果给的是接口,装配的是实现类,可以成功么?

也是可以的。

但是如果有两个类实现了接口那么会注入哪一个实现类?

当然会报错啦、

















0 0
原创粉丝点击