Spring基础入门篇二

通过Spring基础入门篇一,我们对Spring有了一定的了解,本篇重点讲述Spring是如何创建对象并将对象进行依赖注入的几种形式.

 

Spring创建bean对象的方法有三种:

                                      1:构造函数创建对象:

                                       ①在application.xml中输入:

                              <!--id相当于定义的类名,    class相当于将要交给Spring管理的类的路径  --> 
                              <bean id="helloWorld" class="com.zdj.create.HelloWorld"></bean>    

                                      ②创建HelloWorld类

                                  public class HelloWorld {
                                            public HelloWorld() {
        
                         System.out.println("这里的值是???---HelloWorld");
                                    }
                         }

                                     ③在主方法中输入

                                     //第一种通过构造器构建
                           ApplicationContext context = new ClassPathXmlApplicationContext("Application.xml");
                                    //根据id把spring容器中的bean提取出来了
                             HelloWorld helloWorld = (HelloWorld)context.getBean("helloWorld");

                                     2:通过静态工厂方式

                                 ①:在application.xml中创建bean对象

                             <!--告诉Spring容器:我在com.zdj.四月二十八号.testSpringTwo下创建了一个静态方法getStaticInstance  -->
                          <bean id="StaticFactoryMethod" class="com.zdj.create.StaticFactory" factory-method="getStaticInstance"></bean>

                                 ②:创建一个含有该方法名的静态工厂

                       public class StaticFactory {
                       public static StaticFactory getStaticInstance() {
                  System.out.println("这里是通过创建了一个静态工场,返回一个对象");
                       return new StaticFactory();
                               }
                   }

                         ③:在测试方法中调用该静态方法

                        //第二种通过静态工厂方式创建bean对象
                        ApplicationContext staticFactorycontext = new ClassPathXmlApplicationContext("Application.xml");
                        //根据id把spring容器中的bean提取出来了
                        StaticFactory staticFactory = (StaticFactory)context.getBean("StaticFactoryMethod");
                        staticFactory.getStaticInstance();

                        3:通过实例工厂方法形式

                      ①:现在application.xml中定义一个实例工厂

                       <!--这是第三种通过使用实例工厂方法  -->
                       <bean id="InstanceFactory" class="com.zdj.create.InstanceFactory"></bean>
                       <bean id="getInstanceFactory" factory-bean="InstanceFactory" factory-method="getInstanceFactory"></bean>
                    ②:创建一个实例工厂类

                      /*通过实例工厂方法创建bean*/
                         public class InstanceFactory {
                         public InstanceFactory getInstance(){
                        System.out.println("这里使用的是实例工厂方法");    
                        return new InstanceFactory();

                             }
                      }

                   ③:在测试方法中进行测试

                          //第三种:通过实例工厂方法
           ApplicationContext InstanceFactory=new ClassPathXmlApplicationContext("Application.xml"); 
           InstanceFactory  getInstance=(InstanceFactory)InstanceFactory.getBean("getInstanceFactory");
           getInstance.getInstance();

概述一下以上三种生成bean对象的方法:第一种是构造器被定义为一个bean对象,第二种是一个静态方法被定义为一个bean对象,第三种是一个普通方法被定义为一个bean对象。 

Spring的依赖注入有三种形式:

                   1:第一种形式是基于XML注解定义

                  <bean id="student" class="test.Student">

                          <property name="name" value="张三"/>

                          <property name="teacher" ref="teacher"/>//在这里引入下面定义的teacher属性

                 </bean>

 

                <bean id="teacher" class="test.Teacher">

                      <property name="name" value="李四"/>

                 </bean>

当被执行的的时候,就能通过bean的id获取到这里定义的信息啦!

                   2:第二种是基于注解的Bean定义

       Spring在此提供了四种注解,这些注解与上面的XML定义的bean效果一样,在于将组件交给bean管理。

        @Component:当对组件的层次难以定位的时候使用这个注解

        @Controller:表示控制层的组件

        @Service:表示业务逻辑层的组件

        @Repository:表示数据访问层的组件

        applicationContext.xml中声明<contex:component-scan...>一项,指明Spring容器扫描组件的包目录。

        ①通过在model类上面配置注解:

@Component("teacher")

public class Teacher {

@Value("李四")

private String name;

public String getName() {

return name;

}

}

②:在application.xml中配置扫描

<!--扫描组件的包目录-->

<context:component-scan base-package="test"/>

③:在测试方法中进行配置测试即可

          3:根据set方法,将依赖类输入进来

①:配置好Teacher、Stdents上添加@Bean

在方法中将set方法里面注入相应实例,并返回

②:在测试方法中将引用该类结果输出

 

 

本文章参考自:https://blog.csdn.net/sinat_34596644/article/details/53080026<!--里面有相应的配置-->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值