idea 新建spring maven项目、ioc和依赖注入

05-09 1489阅读

文章目录

      • 一、新建Spring-Maven项目
      • 二、在Spring-context使用IOC和依赖注入

        一、新建Spring-Maven项目

        • 在pom.xml文件中添加插件管理依赖
            
                
                    
                        maven-compiler-plugin
                        3.1
                        
                            1.8
                            1.8
                        
                    
                
            
          
        • 在pom.xml文件中添加Spring-Context依赖
          • 其他版本地址
            • https://mvnrepository.com/artifact/org.springframework/spring-context
                    
                        org.springframework
                        spring-context
                        5.2.5.RELEASE
                    
              

              二、在Spring-context使用IOC和依赖注入

              • 在resource里面新建一个spring的xml文件
                • applicationContext.xml ,如图

                  idea 新建spring maven项目、ioc和依赖注入

                • 新建接口类

                      package org.study;
                      public interface ISomeService {
                          void doSome();
                      }
                  
                • 新建接口实现类

                      package org.study;
                      public class SomeService implements  ISomeService{
                          /**
                           * 构造函数
                           */
                          public SomeService()
                          {
                              System.out.println("SomeService 构造函数!");
                          }
                      
                          /**
                           *
                           */
                          @Override
                          public void doSome() {
                              System.out.println("doSome 函数!");
                          }
                      } 
                  
                • Main函数中执行

                      package org.example;
                      import org.springframework.context.ApplicationContext;
                      import org.springframework.context.support.ClassPathXmlApplicationContext;
                      import org.study.ISomeService; 
                      
                      public class Main {
                      
                          public static void main(String[] args) {
                              //加载配置文件
                              ApplicationContext context =   new ClassPathXmlApplicationContext("applicationContext.xml");
                              //第一种方式
                              ISomeService iSomeService = (ISomeService)context.getBean("SomeService");
                              iSomeService.doSome();
                              //第二种方式 要求:获取对应的实例,该实例必须实现对应的接口
                              ISomeService iSomeService1 =  context.getBean("SomeService",ISomeService.class);
                              iSomeService.doSome(); 
                          }
                      }
                  
                • 在当前的服务中调用其他服务

                  • 第一种方式
                    • 使用setter的方式
                      • 接口类
                              package org.study;
                              public interface ISomeService1 {
                                  void doSome();
                              } 
                        
                      • 实现类
                              package org.study;
                              public class SomeService1 implements  ISomeService1{
                                  private ISomeService iSomeService;
                              
                                  public void setiSomeService(ISomeService iSomeService) {
                                      this.iSomeService = iSomeService;
                                  } 
                                  /**
                                   * 构造函数
                                   */
                                  public SomeService1()
                                  {
                                      System.out.println("SomeService1 构造函数!");
                                  } 
                                  /**
                                   *
                                   */
                                  @Override
                                  public void doSome() {
                              
                                      iSomeService.doSome();
                              
                                  }
                              } 
                        
                      • applicationContext.xml
                          
                          
                            
                          
                          
                            
                              
                             
                            
                          
                          
                          
                        
                      • 第二种方式
                        • 使用构造函数方式
                          • 接口类
                                  package org.study;
                                  public interface ISomeService1 {
                                      void doSome();
                                  } 
                            
                          • 实现类
                                  package org.study;
                                  public class SomeService1 implements  ISomeService1{
                                      private ISomeService iSomeService;
                                   
                                  
                                   public  SomeService1 (ISomeService iSomeService){
                                       this.iSomeService = iSomeService;
                                   }
                                      /**
                                       * 构造函数
                                       */
                                      public SomeService1()
                                      {
                                          System.out.println("SomeService1 构造函数!");
                                      }
                                  
                                      /**
                                       *
                                       */
                                      @Override
                                      public void doSome() {
                                  
                                          iSomeService.doSome();
                                  
                                      }
                                  }
                            
                          • applicationContext.xml
                              
                              
                                 
                              
                                
                                   
                                
                              
                              
                              
                            
                          • main函数执行
                               ISomeService1 iSomeService1 = context.getBean("SomeService1",ISomeService1.class);
                              iSomeService1.doSome();
                            
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]