Spring3.0新特性
2017-02-04 10:46
405 查看
1.基础
Spring3.0对jar包进行了改变。
beans.xml:
2.context.getBean可以使用泛型,不用强制类型转化啦
3.Bean的三种配置:xml,Annotation,javaconfig(3.0)
beans.xml:
com.bjsxt.spring30.config:
@Configuration
//使用这个注解需要引入cglib.jar和asm.jar
public class AppConfig {
@Bean
//默认名字userDAO
public UserDAO userDAO() {
return new UserDAOImpl();
}
//xml
//<bean id = "userDAO" class="userDAO()"
}
4.bean的注入
5.SpringExpres sionLanguage表达式语言SpEL
SqEL更加复杂的内容:
详情见Spring3.0的开发文档
Spring3.0对jar包进行了改变。
public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } public interface UserDAO { public void save(User u); } public class UserDAOImpl implements UserDAO { @Override public void save(User u) { System.out.println("a user saved!"); } }
beans.xml:
<?xml version="1.0" encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="userDAO"class="com.bjsxt.spring30.dao.impl.UserDAOImpl"> </bean> </beans>
@ContextConfiguration("classpath:beans.xml") public class UserDAOTest extendsAbstractJUnit4SpringContextTests{ @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 = newClassPathXmlApplicationContext("beans.xml"); UserDAO userDAO = context.getBean("userDAO",UserDAO.class);//3.0 //UserDAO userDAO =(UserDAO)context.getBean("userDAO");2.5 userDAO.save(new User()); } }
3.Bean的三种配置:xml,Annotation,javaconfig(3.0)
beans.xml:
<?xml version="1.0" encoding="UTF-8"?> <beansxmlns="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-scanbase-package="com.bjsxt.spring30.config"></context:component-scan> </beans>
com.bjsxt.spring30.config:
@Configuration
//使用这个注解需要引入cglib.jar和asm.jar
public class AppConfig {
@Bean
//默认名字userDAO
public UserDAO userDAO() {
return new UserDAOImpl();
}
//xml
//<bean id = "userDAO" class="userDAO()"
}
4.bean的注入
@Configuration public class AppConfig { @Bean public UserDAO userDAO() { return new UserDAOImpl(); } @Bean public UserService userService() { UserServiceImpl service = new UserServiceImpl(); service.setUserDAO(userDAO()); return service; } } public interface UserService { public void add(User u); } public class UserServiceImpl implements UserService { private UserDAO userDAO; public UserDAO getUserDAO() { return userDAO; } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } @Override public void add(User u) { this.userDAO.save(u); } } @ContextConfiguration("classpath:beans.xml") public class UserServiceTest extendsAbstractJUnit4SpringContextTests{ @Resource(name="userService") private UserService userService; @Test public void testAdd() { this.userService.add(new User()); } }
5.SpringExpres sionLanguage表达式语言SpEL
public class SpELTest_Simple { @Test public void test01() { Expr essio nParser parser = new SpelExp ressionParser(); Expre ssion exp = parser.parseExpression("'Hello,World'"); System.out.println((String)exp.getValue()); } //如果Hello,World @Test public void test02() { User u = new User(); u.setUsername("zhangsan"); EvaluationContext context = newStandardEvaluationContext(u); Expre ssionParser parser = new SpelExpr essionParser(); Exp ression exp = parser.parseExpres sion("username");//u.getUsername() System.out.println((String)exp.getValue(context)); System.out.println((String)exp.getValue(u)); } //"new HelloWorld().sayHello()" //eval_r("alert('ok');"); }
SqEL更加复杂的内容:
<!--<context:component-scanbase-package="com.bjsxt.spring30.config"></context:component-scan>--> <bean id="my" class="com.bjsxt.spring30.spel.MyBean"> <property name="randomNumber"value="#{T(java.lang.Math).random() * 100}"></property> <property name="userRegion"value="#{systemProperties['user.country']}"></property> </bean>
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 extendsAbstractJUnit4SpringContextTests{ @Resource private MyBean my; @Test public void test01() { System.out.println(my.getRandomNumber()); System.out.println(my.getUserRegion()); } }
详情见Spring3.0的开发文档
相关文章推荐
- Spring 3.0新增特性与功能前瞻
- spring 3.0新特性学习1
- Spring3.0的新特性及其分析
- Atitit spring 3.0 3.1 3.2 4.0 4.3 5.0 新特性
- Atitit spring 3.0 3.1 3.2 4.0 4.3 5.0 新特性
- Spring 3.0中的新增特性与增强特性
- Spring3.0新特性
- [spring] spring 3.0的新特性
- spring 3.0新特性学习1
- Spring说明文档翻译2——第二部分 Spring3.0新特性
- Spring3.0新特性
- Spring3.0带来的新特性
- spring 3.0新特性学习
- Spring 3.0 新特性
- Spring3.0新特性
- Spring3.0新特性 - REST架构的支持
- spring 2.0 到3.0的新特性及理解
- Spring3.0的几个新特性
- spring3.0新特性
- Spring3.0正式版(GA)的九个特性