Spring的注入,主要包括类的注入,属性的注入。通过面向接口编程,结合Spring的依赖注入,可以动态的配置类的注入,使类之间实现解耦。属性的注入包括单个properties的注入,list,set,map,properties集中类型。下面直接上代码。
一、首先是普通bean的构造方法注入示例:
项目是通过maven构建,安装好maven之后,新建一个maven项目,选用maven-archetype-quickstart就行。pom.xml配置文件如下:
pom.xml
4.0.0
com.csii.spring
SpringBean_01
0.0.1-SNAPSHOT
jar
SpringBean_01
http://maven.apache.org
UTF-8
3.2.3.RELEASE
false
central
Maven Repository Switchboard
http://repo2.maven.org/maven2
junit
junit
3.8.1
test
org.springframework
spring-context
${springframework.version}
org.springframework
spring-context-support
${springframework.version}
org.springframework
spring-tx
${springframework.version}
org.springframework
spring-web
${springframework.version}
org.springframework
spring-aspects
${springframework.version}
org.springframework
spring-aspects
${springframework.version}
org.aspectjweaver
aspectjweaver
1.7.2
org.slf4j
slf4j-log4j12
1.7.0
commons-collections
commons-collections
3.1
org.quartz-scheduler
quartz
1.8.5
${project.artifactId}
org.mortbay.jetty
jetty-maven-plugin
7.5.4.v20111024
10
/${project.artifactId}
2、新建两个类:诗人类Poem.java,杂技表演者类:Juggler.java,既会表演杂技又会朗诵诗歌的杂技表演者PoeticJuggle.java
/**
* 杂耍人
* */
public class Juggler implements Performer{
Logger logger=LoggerFactory.getLogger(Juggler.class);
private int beanBags=3;
public Juggler(){}
public Juggler(int beanBags){
this.beanBags=beanBags;
}
public void perform() throws Exception {
logger.info("******表演空抛 "+beanBags+"个豆袋子******");
}
}
public class Poem {
private Logger logger=LoggerFactory.getLogger(Poem.class);
public void recite(){
logger.info("******背诵诗歌******");
}
}
public class PoeticJuggle extends Juggler{
private Poem poem;
public PoeticJuggle(){
super();
}
public PoeticJuggle(Poem poem){
super();
this.poem=poem;
}
public PoeticJuggle(int beanBags,Poem poem){
super(beanBags);
this.poem=poem;
}
public void perform() throws Exception {
super.perform();
logger.info("******在抛豆袋子的时候...******");
poem.recite();
}
}
log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss,SSS} [message] %m%n
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=D:/log.log
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss,SSS} [message] %m%n
4、在测试目录下写一个普通测试类,即可以测试。
public class Test {
public static void main(String[] args) throws Exception {
ApplicationContext ctx=
new ClassPathXmlApplicationContext("applicationContext.xml");
PoeticJuggle poeticJuggle=(PoeticJuggle)ctx.getBean("poeticDuke");
poeticJuggle.perform();
}
}
INFO 2015-05-31 21:33:57,399 [message] ******表演空抛 15个豆袋子******
INFO 2015-05-31 21:33:57,400 [message] ******在抛豆袋子的时候...******
INFO 2015-05-31 21:33:57,400 [message] ******背诵诗歌******