`

Spring注释,散集积累(三)

阅读更多

@Configuration

传统方式:

 

<beans>  
	<bean id="orderService" class="com.acme.OrderService"/>  
		<constructor-arg ref="orderRepository"/>  
	</bean>  
	<bean id="orderRepository" class="com.acme.OrderRepository"/>  
		<constructor-arg ref="dataSource"/>  
	</bean>  
</beans>  

 

 

ApplicationContext ctx = new ClassPathXmlApplicationContext("application-config.xml");  
OrderService orderService = (OrderService) ctx.getBean("orderService");  
 注解方式:

 

@Configuration  
public class ApplicationConfig {  
  
		public @Bean OrderService orderService() {  
				return new OrderService(orderRepository());  
		}  
  
		public @Bean OrderRepository orderRepository() {  
				return new OrderRepository(dataSource());  
		}  
  
		public @Bean DataSource dataSource() {  
				// instantiate and return an new DataSource …  
		}  
}  

 

JavaConfigApplicationContext ctx = new JavaConfigApplicationContext(ApplicationConfig.class);  
OrderService orderService = ctx.getBean(OrderService.class);  

 

 

@Scope("prototype")

 

@Scope("prototype")  
public class PrintTask2 implements Runnable {  
        String name;  
  
        public void setName(String name) {  
                this.name = name;  
        }  
          
        @Override  
        public void run(){  
                System.out.println(name + " is running.");  
                try{  
                        Thread.sleep(5000);  
                }catch(InterruptedException e){  
                        e.printStackTrace();  
                }  
                System.out.println(name + " is running again.");  
        }  
} 

 

 

如果action或Service中不@Scope("prototype"),有可能报找不到xxxaction或Service的错误!写上这个就表示每次请求都重新创建一个action或Service,与SINGALON对应,俗称“多例”。

@Component

 

@Component  
@Scope("prototype")  
public class PrintTask2 implements Runnable {  
        String name;  
  
        public void setName(String name) {  
                this.name = name;  
        }  
          
        @Override  
        public void run(){  
                System.out.println(name + " is running.");  
                try{  
                        Thread.sleep(5000);  
                }catch(InterruptedException e){  
                        e.printStackTrace();  
                }  
                System.out.println(name + " is running again.");  
        }  
}

把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>

 

@Repository

 

@Repository
public class DaoImpl implements IDao{
}

 应用于Dao层,把该类注册到Spring容器中

 

 

@Service

 

@Service
public class ServiceImpl implements IService {
	@Autowired
	private IDao iDao;  
}

 应用于Service层,把该类注册到Spring容器中

 

 

@Controller

 

@Controller
public class TestController {
    @Autowired
    private IService iService;
}

  应用于Action层,把该类注册到Spring容器中

 

@Autowired , @Qualifier("XXX")

 

@Service  
public class TestServiceImpl {  
    @Autowired  
    @Qualifier("iTestDao2")  
    private ITestDao iTestDao;  
}  

在ITestDao接口标上@Autowired@Qualifier注释使得ITestDao接口存在两个实现类的时候必须指定其中一个来注入,使用实现类首字母小写的字符串("iTestDao2")来注入。否则可以省略,只写@Autowired  

 

0
1
分享到:
评论

相关推荐

    spring源码注释中文

    Spring 源码注释中文版的提供,使得开发者能够更加深入地理解 Spring 的工作原理,无需经过复杂的编译过程,可以直接阅读源码注释来学习。 Spring 框架主要由以下几个关键模块组成: 1. **Core Container(核心...

    spring 源码中文注释

    这份"spring 源码中文注释"包含了对Spring框架源码的详细解读,对于理解其工作原理、优化代码以及定制化开发具有重要意义。 首先,我们来看看Spring的核心组件——IoC容器。IoC容器是Spring的核心,它负责管理对象...

    spring源码(注释+测试版)

    这份"spring源码(注释+测试版)"提供了Spring框架的源代码,带有注释和测试用例,对于开发者深入理解Spring的工作原理非常有帮助。 1. **spring-core**:这是Spring框架的基础模块,包含了核心的工具类和资源处理...

    spring注释详解

    以下是一个简单的例子,包括`Office`、`Car`和`Boss`三个类,它们在Spring容器中被声明为Bean,并且有依赖关系: - `Office`类有一个`officeNo`属性。 - `Car`类有两个属性:`brand`和`price`。 - `Boss`类有两个...

    spring源码中英文注释

    这个压缩包文件中的"spring源码 中英文注释"为开发者提供了一个深入理解Spring框架内部工作原理的机会。通过阅读源码和注释,我们可以更清晰地了解Spring如何管理依赖注入、AOP(面向切面编程)、事务管理、上下文...

    spring 编译后源码(有注释)

    在"spring 编译后源码(有注释)"这个压缩包中,你将获得 Spring 框架 5.0.2.RELEASE 版本的源代码,这些源码已经包含了中文注释,对于学习和理解 Spring 框架的工作原理极其有价值。 1. **IoC(Inversion of ...

    spring 5 中文注释源码.rar

    新版 spring 5 中文注释源码,关键源码位置都有中文注释,方便阅读源码 spring源码解读 Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的...

    Spring注释包

    在这个"Spring注释包"中,我们将深入探讨Spring框架如何通过注释来简化开发,提高代码的可读性和可维护性。 首先,让我们了解一下Spring中的核心注解: 1. `@Component`:这是最基础的组件注解,用于标记一个类为...

    最全中文注释版Spring4源码

    除了这三个主要模块,Spring4源码还可能包含了其他的子模块,如AOP、JDBC、ORM(对象关系映射)、Tx(事务管理)等。每个子模块都有其特定的功能,例如AOP用于实现切面编程,提供声明式事务管理;JDBC和ORM模块则...

    Spring源码解析4章150页+Spring3.2.4中文注释源码

    一阶段 1、Spring概述 2、一切从bean开始 ...三阶段 Spring AOP的涉及原理及具体实践 SpringJDBC的涉及原理及二次开发 SpringMVC框架设计原理及手写实现 四阶段 Spring事务源码解析 需要其他源码请私信我

    Spring配置加注释

    Spring配置 Spring 配置 映射 加注释!!!!Spring配置 Spring 配置 映射 加注释!!!!

    Spring-Framework-5.1.x 源码注释maven版本

    在这个带有中文注释的maven版本中,我们能够更方便地理解和学习Spring的源码。 Maven 是一个项目管理和综合工具,它帮助开发者管理项目依赖、构建流程以及提供了一种标准化的项目结构。在Spring Framework 5.1.x的...

    spring-framework-5.0.2.RELEASE-中文注释版-终极完美版.rar

    《Spring框架5.0.2.RELEASE中文注释版详解》 Spring框架是Java开发中的一个核心组件,尤其在企业级应用中广泛使用。本文将深入解析Spring框架5.0.2.RELEASE版本,该版本包含了详尽的中文注释,便于开发者理解和学习...

    spring-framework-5.0.2.RELEASE-中文注释版.zip

    《Spring Framework 5.0.2.RELEASE 中文注释版深度解析》 Spring Framework作为Java领域中的核心框架,以其强大的功能和灵活的扩展性深受开发者喜爱。此压缩包"spring-framework-5.0.2.RELEASE-中文注释版.zip"提供...

    Spring源码学习加注释,方便学习.zip

    spring源码中文注释方便学习,spring源码学习加注释。 spring源码中文注释方便学习,spring源码学习加注释。 spring源码中文注释方便学习,spring源码学习加注释。 spring源码中文...

    Spring注释 注入方式源码示例,Annotation

    花了些时间做了一个实验,彻底弄懂了spring Annotation注入的方式。凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处...

    spring-framework-5.0.2.RELEASE-中文注释版(源码)

    《Spring Framework 5.0.2.RELEASE 中文注释版源码详解》 Spring Framework 是Java开发领域中不可或缺的一部分,它提供了一个全面的应用程序开发框架,帮助开发者处理常见的企业级应用开发问题。5.0.2.RELEASE 版本...

    spring3.1 jar全集

    Spring框架是Java开发中不可或缺的一部分,它以其模块化、松耦合和强大的功能特性深受开发者喜爱。Spring 3.1是该框架的一个重要版本,它带来了许多改进和新特性,旨在提升开发效率和应用程序的可维护性。在这个...

    spring源码,配套完善的注释

    Spring框架是Java开发中不可或缺的重要组成部分,它以其强大的IoC(Inversion of Control)和AOP(Aspect-Oriented Programming)特性,以及丰富的模块化设计,成为企业级应用开发的首选。本压缩包包含了Spring的...

    spring-core-4.2.5.RELEASE-javadoc.jar (spring4.2.5的文档,即为spring的源码注释)

    spring-core-4.2.5.RELEASE-javadoc.jar (spring4.2.5的文档,即为spring的源码注释),导入到eclipse中,就可以查看spring的源码注释,当调用spring的类或者方法时就会显示注释信息。

Global site tag (gtag.js) - Google Analytics