spring 基于java的注入
来源:互联网 发布:网吧营销大师软件 编辑:程序博客网 时间:2024/05/08 11:15
并不是所有的人都喜欢用xml来配置spring,尤其是那些没学过xml或者讨厌xml的人。因此spring出现了一种基于java(就是通过写java代码来配置)的配置方法。
我在上次说过,springIOC容器,就是一个键值对的map,而且spring本来就是用java写的,因此用java来进配置,就是相当于新建一个实例放入这个springIOC容器当中,这和我们平常写代码非常相似。
言归正传,使用java风格的第一步就是配置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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!--这个liu就是你使用spring的包名--> <context:component-scan base-package="liu"/></beans>
然后定义一个配置类:
比如在我的工程下有一个A类,我需要对A类进行注入,那么在配置类中就可以这样写。
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class SpringConfig{ @Bean public A a(){ return new A(); }}
@Configuration:这个注释必须有,在spring扫描包的时候,扫描到这个注解就会把这个类当成配置类。也就相当于配置文件当中的一样
@Bean:注入一个bean,也就是相当于配置文件当中的一样
A:放回类型对应着中的class
a方法名:对应着中的id
有的人说这样弄比配置有什么优势?
优势在于注入值的时候。
比如A是这样的
public class A{private int num;public A(int num){ this.num=num;}}
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class SpringConfig{ @Bean public A a(){ return new A(10); }}
你可以写成上面这样。
当然也可以是set注入:
public class A{private int num;public void setNum(int num){ this.num=num;}}
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class SpringConfig{ @Bean public A a(){ A aa=new A(); aa.setNum(10); return aa; }}
还有通过引用来进行注入
public class A{private B b;public void setB(B b){ this.b=b;}}
public class B{}
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class SpringConfig{ @Bean public B b(){ return new B(); } @Bean public A a(){ A aa=new A(); aa.setB(b()); return aa; }}
剩下的大家举一反三,比起配置文件方便了很多吧,尤其是注入复杂的参数的时候。
0 0
- spring 基于java的注入
- Spring基于annotation的依赖注入实现
- Spring的依赖注入(基于XML)
- 基于Spring容器Bean的动态注入
- Spring 基于注解DI的注入
- spring基于setter方法的依赖注入
- spring基于构造方法的依赖注入
- Spring基于xml的构造方法注入&setter注入
- Spring基于xml的构造方法注入&setter注入
- Spring的核心技术(六)---基于Setter的依赖注入
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现
- Spring 3.0 基于 Annotation 的依赖注入实现(二)
- Spring 3.0 基于 Annotation 的依赖注入实现一
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现
- 视频接口
- cursor 鼠标样式的几种样式
- 树状数组
- Opencv各个版本的万能头文件
- parent.window与top.window的用法
- spring 基于java的注入
- 浅谈CSRF攻击方式
- 使用WebRTC搭建前端视频聊天室——信令篇
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- c++类默认拷贝构造函数---浅复制
- Hibernate事务系列问题
- 回显是什么鬼?浅谈
- Android锁屏状态下弹出activity
- oracle 笔记记录