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());
}
}
分享到:
相关推荐
在Spring 3.0中,核心容器(Core Container)组件得到了显著提升,主要体现在以下几个方面: 1. **Bean表达式语言(Bean Expression Language, BEML)**:Spring 3.0引入了基于Groovy的表达式语言,允许在配置中...
在这个版本中,Spring主要在以下几个方面进行了重大更新: 1. **注解配置增强** Spring 3.0大大扩展了注解的使用,使得开发者可以减少XML配置,转而使用更简洁的注解进行组件扫描和依赖注入。例如,`@Component`、...
源代码分析通常涉及以下几个关键知识点: 1. **依赖注入**:Spring3.0的核心特性之一,允许开发者通过配置来管理对象之间的依赖关系,而不是硬编码这些依赖。在`src`目录下,可以找到`org.springframework.beans`和...
《Spring3.0就这么简单》是一本专注于Spring框架3.0版本的图书,其源代码提供了深入理解Spring工作原理的机会。这本书旨在简化Spring框架的学习过程,通过实例和源码解析,帮助读者快速掌握Spring的核心概念和技术。...
Spring 3.0是Spring框架的一个重要版本,它在2009年发布,引入了大量新特性,进一步增强了Spring的灵活性和可扩展性。在这个版本中,Spring框架的改进和增强主要集中在以下几个方面: 1. **依赖注入(Dependency ...
Spring 3.0 是Spring框架的一个重要版本,它在2009年发布,为Java开发者带来了许多新特性和改进。这个版本标志着Spring框架在企业级应用开发中的成熟,提供了更强大、更灵活的解决方案。以下是一些核心知识点: 1. ...
Spring3.0作为Spring框架的一个重要版本,引入了许多新特性和改进,使得开发更加高效且易于维护。这个资源包包含了Spring3.0的核心组件、示例代码以及中文文档,对于学习和理解Spring框架具有极大的帮助。 Spring...
下面将详细介绍与Spring 3.0相关的几个核心知识点。 ### 1. Spring 3.0的新特性 #### 1.1 支持HTTP方法注解 Spring 3.0在MVC模块中增加了对HTTP方法(如GET、POST)的支持,可以通过`@RequestMapping`注解中的`...
在"spring3.0_jar"压缩包中,我们看到的是Spring框架3.0版本所需的所有jar包,这对于开发者来说是一个宝贵的资源集合,它包含了运行和开发Spring应用所需的全部组件。 Spring的核心组件包括以下几个部分: 1. **...
Spring3.0 MVC教程通常涵盖以下几个部分: 1. 框架简介,介绍Spring MVC的基本概念和架构。 2. 创建第一个Hello World应用,演示基本的配置和控制器编写。 3. 表单处理,展示如何处理来自HTML表单的数据。 4. 使用...
标题 "spring3.0 mvc+mybatis3.0" 提到的是一个集成Spring MVC 3.0和MyBatis 3.0的项目实例,这两大框架在Java Web开发中占据重要地位。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序的前端控制器,而...
在学习Spring 3.0源码时,可以重点关注以下几个方面: - BeanFactory和ApplicationContext接口的实现,了解bean的创建、初始化和依赖注入过程。 - AOP的实现,如Pointcut、Advisor、Proxy等类的交互。 - MVC的...
将Axis2集成到Spring3.0涉及到以下几个关键步骤: 1. 添加依赖:首先,你需要在项目的类路径中添加所需的Axis2和Spring库。描述中提到的"webservice所需jar包及配置文件"可能包含了这些必要的依赖。 2. 配置Spring...
在本项目中,我们关注的是一个经典的Java Web开发技术栈:Spring 3.0、Hibernate 3.3以及MySQL 8.0的整合。这个组合是企业级应用中常见的技术选型,它们各自承担着不同的职责,共同构建了一个强大、灵活且可扩展的...
在本项目中,Spring3.0作为服务层和持久层的胶合剂,可以通过Spring的IoC(Inversion of Control,控制反转)和AOP特性管理对象生命周期和事务。Spring的DAO支持可以帮助我们更方便地与数据库交互,而Spring MVC可以...
标题 "spring3.0+hibernate3.0+struts2" 提示我们讨论的是一个集成使用Spring 3.0、Hibernate 3.0和Struts 2的经典Java Web开发框架,通常被称为SSH(Spring、Struts和Hibernate)。这个组合在过去的几年里非常流行...
在Spring 3.0中,有几个显著的增强和改进,包括: 1. **模块化**:Spring 3.0引入了更明确的模块划分,如Core Container(核心容器)、Data Access/Integration(数据访问/集成)、Web、AOP(面向切面编程)和...
在配置文件中,你需要关注以下几个关键部分: 1. **DispatcherServlet配置**:定义Spring MVC的前端控制器,处理所有HTTP请求。 2. **ViewResolver**:配置视图解析器,如FreeMarker或JSP,用于将处理结果渲染为...
在"spring3.0 spring+hibernate_struts2整合"这个项目中,使用的Spring版本是3.0,这是一个重要的里程碑,因为它引入了许多新特性,如对JSR-330标准的支持、改进的AOP功能、更强大的数据绑定等。这个项目的压缩包...
总之,CXF2.6+Spring3.0+Struts2.3的整合提供了构建复杂Web应用程序的能力,通过它们的协作,开发者可以轻松地创建和管理Web服务、实现松散耦合的业务逻辑以及构建用户友好的交互界面。通过这个示例,学习者可以深入...