用过spring2.5的朋友应该都知道它的一些简单的应用,如:
bean.xml中配置<bean id="userDAO" class="cn.ling.spring3.dao.impl.UserDAOImpl">
然后在要用到的类中用注解注入,如下
@ContextConfiguration("classpath:beans.xml")
public class UserDAOTest {
@Resource(name="userDAO")
private UserDAO userDAO;
public void testSave() {
this.userDAO.save(new User());
}
}
或者不用注解,如下:
public void testSave() {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
UserDAO userDAO = (UserDAO)context.getBean("userDAO");
userDAO.save(new User());
}
在这里,spring3.0给我们提供了一个新功能,可以避免上面的强制转换
UserDAO userDAO = context.getBean("userDAO", UserDAO.class);
呵呵,可能这个没方便多少!
如果你不大了解XML或者是不想用xml来配置bean,想用java风格来配置bean的话,那么spring3.0下面的这个特性就很合胃口了。首先再引入两个包:asm-3.2.jar和cglib-2.2.jar,我在下面上传了。
接着,在bean.xml中加入一句:<context:component-scan base-package ="cn.ling.spring3.config"> </context:component-scan>
然后建一个类cn/ling/spring3/config/AppConfig .java里面的代码如下:
@Configuration
public class AppConfig {
@Bean
public UserDAO userDAO() {
return new UserDAOImpl();
}
}
这个在bean.xml中相当于<bean id = "userDAO" class="userDAO"/>
这样就可以了。
看到这,可能你会问,那类里面的属性怎么注入呢。
其实道理也很简单,在上面的AppConfig.java中,再搞一个@Bean,引用第一个bean就可以了。修改如下(只在AppConfig.java中修改就可以了)。
@Configuration
public class AppConfig {
@Bean
public UserDAO userDAO() {
return new UserDAOImpl();
}
@Bean
public UserService userService() {
UserServiceImpl service = new UserServiceImpl();
service.setUserDAO(userDAO()); //在这里就注入了userDAO属性。
return service;
}
}
那么数据库的参数怎么配置呢?这个就搞得有点偏复杂了。如下,也是只在AppConfig.java中修改。
首先定义几个属性,用注入的方式。
private @Value("#{jdbcProperties.url}")String jdbcUrl;
private @Value("#{jdbcProperties.username}")String username;
private @Value("#{jdbcProperties.password}")String password;
然后,再加一个@Bean
@Bean
public DataSource dataSource(){
return new DriverManagerDataSource(jdbcUrl,username,password);
}
最后在bean.xml中加入一句<util:properties id="jdbcProperties" location="classpath: cn/ling/dao/jdbc.properties"/>
如何取得SessionFactory呢?如下
@Bean
public SessionFactorysessionFactory(){
//wire up a session factory
AnnotationSessionFactoryBean asFactoryBean = new AnnotationSessionFactoryBean();
asFactoryBean.setDataSource(dataSource()); //这里的dataSource就是上面讲的那个方法。
//add itional config
return asFactoryBean.getObject();
}
这一讲就到这,下一讲是另一个重点:SpEL表达式。
相关推荐
Spring3.0学习笔记
基于注解的spring_3.0.x_MVC学习笔记
DWR学习资料 :DWR 3.0 上传文件.txt DWR3.0反向Ajax示例.txt DWR3.0学习笔记.txt DWR3.0学习网址.txt dwr分页.doc DWR分页代码.doc DWR中文文档.doc DWR中文文档.pdf dwr做comet的完整实现.doc Spring整合DWR comet ...
SpringMVC 已经成为目前最主流的 MVC 框架之一,并且随着 Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解, 让一个简单的 Java 类成为处理请求的控制器, 而无须实现任何接口。 同时它...
本人资源全部免费,更多资源请查看我的上传资源 ==========================... 著作:《Java JDK 5.0学习笔记》、《Java SE 6技术手册》、《Spring技术手册》等 译作:《Ajax实战手册》、《jQuery实战手册(第2版)》
Spring学习笔记...............345 第一章 Spring概述..........................345 第二章 Spring IOC(控制反转)........347 第三章 Spring AOP(面向切面编程)..........351 第四章 Spring中的数据访问.............
目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................
Spring学习笔记...............345 第一章 Spring概述..........................345 第二章 Spring IOC(控制反转)........347 第三章 Spring AOP(面向切面编程)..........351 第四章 Spring中的数据访问.............
springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...
为了广大程序员同胞不会走入误区,这里整理了,springboot相关学习资料
Freemaker_入门+深入+开发指南+学习笔记.doc FreeMarker标签中文文档.pdf FreeMarker教程.pdf ibatis开发指南(中文版).pdf java web标签大全.CHM jBPM_4.4_开发指南.pdf jquery1.7 中文手册.chm lucene3.0-api.CHM...
把学到j2ee企业级开发用的知识大体总结了一下,对于初学者很实用,对于以后会有很大的帮助!
spring框架的学习笔记,以及演示代码。 Spring框架概述1、什么是Spring2、Spring框架的优点3、Spring框架体系结构Spring框架——控制反转(IOC)1、IOC介绍2、基于配置的IOC2.1、导入jar包2.2、配置文件2.3、测试3...
对于针对 Spring Integration 早期版本运行的示例,请使用SI4.0.x和SI3.0.x分支。 介绍 欢迎来到Spring Integration 示例存储库,它提供了50 多个示例来帮助您学习 。 为了简化您的体验, Spring Integration示例...
补码= 反码 +1 正数=负数的补码(反码+1) 反码= 非(二进制数) 八进制数,零开头 011(八进制)=9(十进制) 十六进制数,零x开头 0x55(十六进制)=5*16+5(十进制) 类型:数据都必须有类型 boolean (8bit,不定...
在网上找的spring security3.0开发入门,感觉讲的还不错,跟着操作,都可以运行。希望对正在学习security的你有所帮助。过几天会自己总结一个比较系统的学习笔记,希望大家多多关注,多多交流,互相进步。
CSS完全参考手册3.0 ApacheMenu_zh_CN DIV+CSS(WEB标准) hibernate学习笔记 java web 标签大全 JavaScript 中文版 JDK_API_1_6_zh_CN jquery 1.7 中文 api 修正版 Jsp_sevlet中文API jsdom Oracle九阴真经 Servlet ...
学习这个项目的时候,对其思路做了笔记,我这里按照自己的写法,与其略有不同, 但是基本思路都是一样的。 注意: 本机环境是jdk8,tomcat8,mysql5.7.13,windows下,IDE是IntelliJ IDEA, mongodb(mongodb-win32-...