`
whoosh
  • 浏览: 232123 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Spring3.0的几个新特性

阅读更多
1、利用Spring自带的测试工具测试的时候属性可以自己注入
import javax.annotation.Resource;
import org.junit.Test;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import com.bjsxt.spring30.model.User;

@ContextConfiguration("classpath:beans.xml")
public class UserDAOTest extends AbstractJUnit4SpringContextTests{
	
	@Resource(name="userDAO")
	private UserDAO userDAO;
	
	@Test
	public void testSave() {
		this.userDAO.save(new User());
	}

}


2、context.getBean可以使用泛型不用强制类型转换了
public class UserDAOTest2 {
	@Test
	public void testSave() {
		ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
		UserDAO userDAO = context.getBean("userDAO", UserDAO.class);
		
		//UserDAO userDAO = (UserDAO)context.getBean("userDAO");
		userDAO.save(new User());
	}
}


3、配置文件可以写在java文件里面(没什么多大作用,Spring的文档里面说如果你不想脱离java风格的配置文件,就可以这么写)
<?xml version="1.0" encoding="UTF-8"?>
<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-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	<context:component-scan base-package="bruce.zhao.spring3_0.config"></context:component-scan>
</beans>

@Configuration
public class AppConfig {
	@Bean
	public UserDAO userDAO() {
		return new UserDAOImpl();
	}
	
	//xml
	//<bean id = "userDAO" class="userDAO()"
}


4、SpEL语言
动态语言的主要特性:能把一个字符串"new HelloWorld().sayHello()"当成语法运行,用现有的代码产生新的代码。
如js里面eval("alert('ok');");
java做不到这一点,所以他是静态语言,除非用java6里面的Compiler动态编译下。
@Test
	public void test01() {
		ExpressionParser parser = new SpelExpressionParser();
		Expression exp = parser.parseExpression("'Hello,World'");
		System.out.println((String)exp.getValue());
	}
	
	@Test
	public void test02() {
		
		User u = new User();
		u.setUsername("zhangsan");
		
		EvaluationContext context = new StandardEvaluationContext(u);
		
		ExpressionParser parser = new SpelExpressionParser();
		Expression exp = parser.parseExpression("username"); //u.getUsername()
		System.out.println((String)exp.getValue(context));
		System.out.println((String)exp.getValue(u));
	}


eg2 可以用在配置文件里面,更加灵活的给我们一些属性进行初始化的赋值
<?xml version="1.0" encoding="UTF-8"?>
<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-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<!--
	<context:component-scan base-package="bruce.zhao.spring3_0.config"></context:component-scan>
-->

<bean id="my" class="bruce.zhao.spring3_0.spel.MyBean">
	<property name="randomNumber" value="#{T(java.lang.Math).random() * 100}"></property>
	<property name="userRegion" value="#{systemProperties['user.country']}"></property>
</bean>

</beans>


public class MyBean {
	private double randomNumber;
	private String userRegion;
	public double getRandomNumber() {
		return randomNumber;
	}
	public void setRandomNumber(double randomNumber) {
		this.randomNumber = randomNumber;
	}
	public String getUserRegion() {
		return userRegion;
	}
	public void setUserRegion(String userRegion) {
		this.userRegion = userRegion;
		//System.getProperty("user.country");
	}
	
}

@ContextConfiguration("classpath:beans.xml")
public class SpELTest extends AbstractJUnit4SpringContextTests{
	
	@Resource
	private MyBean my;
	
	@Test
	public void test01() {
		System.out.println(my.getRandomNumber());
		System.out.println(my.getUserRegion());
	}

}


分享到:
评论

相关推荐

    spring3.0新特性

    spring3.0的新特性 以及注解简化mvc让他真正解耦合

    Spring3.0新特性

    这是一个详细介绍Spring3.0新特性的文档

    spring3.0 全部jar包

    spring3.0 全部jar包 spring3.0 全部jar包 spring3.0 全部jar包

    Spring 3.0就这么简单_Part3.pdf

    《Spring 3.0就这么简单》语言简洁,实例丰富,可帮助读者迅速掌握使用Spring3.0进行开发所需的各种技能。《Spring3.0就这么简单》适合于具有一定Java编程基础的读者,以及在Java平台下进行各类软件开发的开发人员和...

    spring3.0jar包

    spring3.0 开发包,开发J2ee,值得拥有

    Spring 3.0就这么简单源代码

    本书主要介绍了Spring 3.0的核心内容,不仅讲解了Spring 3.0的基础知识,还深入...《Spring3.0就这么简单》展示了如何使用Spring自己动手打造服务平台框架,并在《Spring3.0就这么简单》的最后给出一个开发实战案例。

    Spring3.0新特性源码

    Spring3.0新特性源码Spring3.0新特性源码

    spring3.0帮助文档(包含REST资料)

    Spring 3.0重要特性总结如下: ◆Spring表达式(SpEL):用于bean定义的核心表达式分析器 ◆对基于注释的组件的更多支持:允许通过元注释创建注释的“快捷方式” ◆标准化的依赖性注入注释:对Java中依赖性注入的...

    spring 3.0 jar spring最新开发包

    spring 3.0 jar spring最新开发包

    spring3.0的API

    spring3.0的API,spring3.0的API

    spring3.0 jar包

    spring3.0 jar包

    spring3.0 api

    spring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 apispring3.0 api

    spring3.0 项目源码

    spring3.0 项目源码 spring3.0 注解 的学习,spring mvc 完整项目, 请你好好学习一下!

    Spring3.0学习文档

    Spring3.0学习文档主要讲解的是IOC和AOP 静态代理、动态代理这些内容是Spring3.0中最难理解的重点知识点

    Struts2.1+Spring3.0+JPA1.0 .pdf

    Struts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdf

    spring3.0+spring mvc3.0+mybaits3.0

    spring3.0+spring mvc3.0+mybaits3.0

    spring 3.0 jar包

    spring 3.0 jar包,下载无需资源分,希望大家能够用得到,另外强烈鄙视那些上传资源不完整,不经过测试的人。

    spring3.0Mvc简单示例

    spring3.0Mvc简单示例 导入即可运行

Global site tag (gtag.js) - Google Analytics