spring 3.0新特性学习

 spring 3.0新特性学习1

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

  注意,extends AbstractJUnit4SpringContextTest的话,就不用再用以前的去根据ApplicationContext去读取了。


2 获得BEAN的时候支持泛型
   @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文件看作配置文件
   在beans.xml中
   <context:component-scan base-package="com.liao.config"></context:component-scan>
然后在类中,设置这个配置文件:
  import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.bjsxt.spring30.dao.UserDAO;
import com.bjsxt.spring30.dao.impl.UserDAOImpl;

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

  又如:
@Bean
 public UserDAO userDAO() {
  return new UserDAOImpl();
 }
 
 @Bean
 public UserService userService() {
  UserServiceImpl service = new UserServiceImpl();
  service.setUserDAO(userDAO());
  return service;
 }

4 SPEL:
  @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));
5 SPEL中,可以在配置文件中赋予和计算一些表达式了,比如:
  <property name="randomNumber" value="#{T(java.lang.Math).random() * 100}"></property>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值