简单使用Spring注解 测试程序 非web程序
2016-01-06 14:11
519 查看
前些时间一直在做前端,框架方面的知识都有些生疏,所以准备下笔记录一下,方便以后使用
首先就是研究一下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随意英文即可
接着创建helloworld文件 HelloWorld.java
包为com.importnew
再创建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;
@Component
public class Car {
private int value = 100;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
我们设置一个属性
我们想得到这个值 但不想 通过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 装备到了属性中
那么如果给的类型是父类,注解装备的是子类,可以成功么?
是可以的。
如果子类父类都进行了装配,注入的是子类还是父类?
是父类
如果给的是接口,装配的是实现类,可以成功么?
也是可以的。
但是如果有两个类实现了接口那么会注入哪一个实现类?
当然会报错啦、
首先就是研究一下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; @Component public 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;
@Component
public 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 装备到了属性中
那么如果给的类型是父类,注解装备的是子类,可以成功么?
是可以的。
如果子类父类都进行了装配,注入的是子类还是父类?
是父类
如果给的是接口,装配的是实现类,可以成功么?
也是可以的。
但是如果有两个类实现了接口那么会注入哪一个实现类?
当然会报错啦、
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android之使用Http协议实现文件上传功能
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- GUI - Web前端开发框架
- 介绍一款信息管理系统的开源框架---jeecg
- Extjs4.0 最新最全视频教程
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序