Spring学习笔记_装配bean_01

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}  
                      
                  
              
          
      
  


1、新建一个Source-Folder,命名为src/main/resources,在这个目录下新建一个文件applicationContext.xml.


  
  
   
   
   
   
   
       
       
   
   
  
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();
		
		
	}

}

3、因为用到了sl4j打印日志,所以在src/main/resources目录下新建一个log4j.properties文件

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] ******背诵诗歌******



你可能感兴趣的:(Spring学习笔记)