一直在使用Spring2.0,看到Spring都已经升级到3.0M2版了,决心该升级自己使用的Spring了!等待3.0正式版出来,先学习一下Spring2.5.6,也就是3.0之前最后的一个正式版,在这里记录一下学习笔记!JavaEye可以导出PDF也是记录笔记的原因之一!!!
使用BeanPostProcessor
与注解是 Spring IoC 容器的一个普通扩展方法,个人对注解比较感兴趣,这里先看看注解IOC的测试!!
1、@Service
Spring2.5以前的版本中bean都是使用<bean>这样的xml标签来配置的,这样就需要配置很多的bean,当然不是很好,2.5中引入了@Service这个标签,使用这个标签来标识一个class就会自动生成和类名对应的Bean(首字母小写),比如:
@Service
public class User {
private String userName = "erikchang";
public String toString() {
return this.userName;
}
}
如果@Service不指定Bean名称,这样就会自动生成一个名为user的Bean,不想让他默认则指定名称:@Service("user1"),在ApplicationContext中就可以如下获取:
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
User u = (User) ctx.getBean("user");//user为bean名称
这样就大大简化了Bean的配置,不过使用2.5的注解IOC需要配置如下的xml文件:
<?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-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
<context:component-scan base-package="com.javatalk" />
</beans>
注意配置文件中context的声明;
通过这个简单的bean注解,就可以完成一系列的bean配置而不需要任何的xml配置了!
2、@Autowired
@Autowired用来标识需要注入的bean,如有2个bean,一个为User,和上面的一样,另一个为Family:
@Service
public class Family {
private User user;
public User getUser() {
return user;
}
@Autowired //标识用在set方法或者实体上,表示在Family类中注入了User这个bean
public void setUser(User user) {
this.user = user;
}
public String toString(){
return "家族中人员:"+ user.toString();
}
}
写一个简单的测试类如下:
public class TestAutowire {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
Family f = (Family) ctx.getBean("family");
System.out.println(f.toString());
}
运行结果如下:
!
一个简单的标签确实方便了很多,再也不需要写那么xml文件来配置bean了。
- 大小: 683 Bytes
分享到:
相关推荐
- **Lazy Initialization**:可以使用 `lazy-init="true"` 来延迟 Bean 的初始化,这意味着只有在第一次请求 Bean 时才会进行初始化。 - **Default Lazy Initialization**:若希望对所有 Bean 都应用懒加载,则...
在IT行业中,分页是网页应用中不可或缺的功能,它能够有效地管理大量数据,提高用户体验,避免一次性加载过多数据导致的性能问题。本项目基于经典的Java企业级开发框架——Spring 2.5、Struts 2.0和Hibernate 3.0...
这个电影网站项目不仅是一个实用的示例,也是一次学习SSH2集成和实践的机会。通过研究和调试代码,开发者可以深入了解这三大框架的协同工作方式,提升自己的Java Web开发技能。同时,项目中提到的不足之处,如代码...
当你声明一个实体的一对多或一对一关系为“懒加载”时,不会在获取主对象时立即加载关联对象,而是在第一次访问这些关联对象时才发起数据库查询。这样可以提高程序的运行效率,避免大数据量的加载导致的性能问题。 ...
标准的配置文件是在第一次生成代码的时候调用,来生成一个完整的配置文件的内容,如果说想在此配置文件的内容中增加内容,怎么办? 大家可以看到,标准的4个配置文件中都带有“<!-- webapp-generator-insert-location -...
第一次制作CHM,如有不足请见谅 网上很多API其实开发手册,因此做了共享给大家
- **singleton**:默认情况下,每个Bean定义在Spring IoC容器中只会被创建一次,这是最常用的作用域。 - **prototype**:每次从容器中请求该Bean时都会创建一个新的实例。 - **request**:对于每个HTTP请求,都会...
3.2.5是CGLIB的一个版本号,表明这是CGLIB库的第3.2.5次更新,包含了之前版本的改进和修复。 接下来,我们来讨论`spring-objenesis-repack-2.6.jar`。Objenesis是一个轻量级库,它能够在Java中实现无构造器实例化,...
第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP...
Spring Security 3.0.1 是在 Spring Security 3.0 的基础上进行的一次 bug 修复版本,主要针对先前版本中存在的问题进行了修正。此次版本未引入新的功能,但修正了一些已知的问题,增强了稳定性。 ##### 1.4 获取 ...
- **轻量级**:Spring框架体积小、资源占用低,可以作为一个独立的组件运行于不同的服务器环境,体现了“一次编写,到处运行”的理念。 - **控制反转(IoC)**:IoC是Spring的核心特性之一,通过让对象的依赖关系由...
第一部分spring的核心 第1章开始spring之旅 1.1spring是什么 1.2开始spring之旅 1.3理解依赖注入 1.3.1依赖注入 1.3.2di应用 1.3.3企业级应用中的依赖注入 1.4应用aop 1.4.1aop介绍 1.4.2aop使用 1.5小结...
第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP...
- **Lazily-instantiated beans**: 延迟加载Bean,直到第一次请求时才初始化。 - **Autowiring collaborators**: 自动装配协作对象,简化了配置。 - **Checking for dependencies**: 检查Bean是否存在未满足的依赖。...
通过设置`lazy-init="true"`,我们可以让Bean在第一次请求时才初始化。 8. ** Profiles:** Spring支持多环境配置,通过`@Profile`注解可以指定Bean在特定环境下生效。 9. **AOP(面向切面编程):** Spring的...
Spring 4.0 则成为第一个全面支持 Java 8 版本的框架,带来了更多现代化的编程特性。 Spring 框架的优点包括: 1. 分层架构:允许用户自由选择需要的组件,提高灵活性。 2. POJO 编程:鼓励使用普通 Java 对象,...
"cache2.5"是特定版本的缓存技术,"demo"表明这是一次演示或示例,"cache"则强调了缓存技术的应用。 在压缩包内的文件 "conf.test" 和 "java.test" 可能分别代表配置文件和Java源代码。"conf.test"通常包含项目的...
第一部分前言 15 1.入门 16 2.介绍 17 2.1什么是Spring Security? 17 2.2历史 19 2.3版本编号 20 2.4获得Spring安全 21 2.4.1使用Maven 21 Maven仓库 21 Spring框架 22 2.4.2 Gradle 23 Gradle存储库 23 使用Spring...
总的来说,研究Jive 2.5的源代码是一次深入了解企业级社交网络平台开发的宝贵机会。通过这个过程,不仅可以学习到Jive的实现细节,还能掌握Java Web开发、数据库管理和服务器部署等方面的知识,对于提升自身的软件...