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

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


首先就是研究一下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 装备到了属性中


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

是可以的。

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

是父类

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

也是可以的。

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

当然会报错啦、

















  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值