当前位置: 首页 > wzjs >正文

西安招商型网站建设陕西专业网站建设价格

西安招商型网站建设,陕西专业网站建设价格,网站用户细分,wordpress 主题数据Spring基础05 Bean的作用域 bean的作用域官网图示&#xff1a; Bean的作用域分类&#xff1a; 单例模式&#xff1a;Spring的默认机制&#xff0c;每次从容器中取出的都是同一个对象。 <!-- 默认为单例模式 --> <bean id"address" class"Address&qu…

Spring基础05

Bean的作用域

  1. bean的作用域官网图示:

    在这里插入图片描述

  2. Bean的作用域分类:

    • 单例模式:Spring的默认机制,每次从容器中取出的都是同一个对象。

      <!-- 默认为单例模式 -->
      <bean id="address" class="Address"  scope="singleton">
      </bean>
      

      在这里插入图片描述

    • 原型模式:每次从容器中get的时候,都会产生一个新对象。

      <!-- 原型模式 -->
      <bean id="address" class="Address"  scope="prototype">
      </bean>
      

      在这里插入图片描述

    • 其余request,session,application这些只能在web开发中使用到!

  3. Bean的自动装配:

    • 自动装配是Spring满足bean依赖的一种方式!

    • Spring会在上下文中自动寻找,并自动给bean装配属性!

    • 在Spring中自动装配的方式:

      • 在xml中显示的配置。
      • 在java中显示配置。
      • 隐式的自动装配bean。
    • 使用注解实现自动装配:

      • Spring2.5支持注解。
  4. xml配置代码示例:

    • 编写实体类:
    public class Cat {public void shout(){System.out.println("miao~");}
    }
    
    public class Dog {public void shout(){System.out.println("wang~");}
    }
    
    public class People {private Cat cat;private Dog dog;private String name;public Cat getCat() {return cat;}public void setCat(Cat cat) {this.cat = cat;}public Dog getDog() {return dog;}public void setDog(Dog dog) {this.dog = dog;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "People{" +"cat=" + cat +", dog=" + dog +", name='" + name + '\'' +'}';}
    }
    
    • 编写spring配置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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="cat" class="Cat"></bean><bean id="dog" class="Dog"></bean><bean id="people" class="People"><property name="name" value="张三"></property><property name="cat" ref="cat"></property><property name="dog" ref="dog"></property></bean> </beans>
    
     <!-- byName: 会自动在容器上下文中查找,和自己对象set方法后面值对应的beanid--><bean id="people" class="People" autowire="byName"><property name="name" value="张三"></property></bean> ><!-- byType: 会自动在容器上下文中查找,和自己对象属性类型相同的beanid--><bean id="people" class="People" autowire="byType"><property name="name" value="张三"></property></bean>
    
    • 编写测试类:
    import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {public static void main(String[] args) {ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("beans.xml");People people = (People) classPathXmlApplicationContext.getBean("people");people.getDog().shout();people.getCat().shout();}
    }
    
    • 注意点:

      • byName的时候,需要保证所有的bean的id唯一,并且这个bean需要和自动注入的属性的set方法值一致。
      • byType的时候,需要保证所有的bean的class唯一,并且这个bean需要和自动注入的属性的类型一致。
  5. 自动装配xml代码示例:

    • 使用注解须知:

      1. 导入约束: context约束。

        <beans        xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="pring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd">
        </beans>
        
      2. 配置注解的支持: context:annotation-config/ 。

        <?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/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><context:annotation-config/><bean id="cat" class="Cat"></bean><bean id="dog" class="Dog"></bean><bean id="people" class="People"></bean>
        </beans>
        
        public class People {@Autowiredprivate Cat cat;@Autowired // 可以在set方法上使用private Dog dog;private String name;public Cat getCat() {return cat;}public Dog getDog() {return dog;}public String getName() {return name;}public void setName(String name) {this.name = name;}
        }
        
      3. 如果自动装配场景比较复杂,无法只使用@Autowired注解完成时,我们可以使用@Qualifier(value=“xxx”)去配合@Autowired使用,指定一个唯一的bean对象注入!

        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.beans.factory.annotation.Qualifier;public class People {@Autowiredprivate Cat cat;@Autowired@Qualifier(value = "dog1")private Dog dog;private String name;}
        
      4. @Resource注解

        import javax.annotation.Resource;public class People {private Cat cat;@Resource(name = "dog1")private Dog dog;private String name;
        }
        
      5. @Resource和@Autowired的区别:

        • 都是可以用来自动装配,都可以放在属性字段上。

        • @Autowired通过byType的方式实现,必须存在这个类型的对象,如果一种类型对应多个对象,则搭配@Qualifier(value=“xxx”)使用。

        • @Resource默认通过byName的方式实现,如果找不到名字,则通过byType实现,如果两种都找不到就会报错,使用@Resource(name = “xxx”)解决报错。


文章转载自:

http://Z1eDAQ7E.drswd.cn
http://e3mKeiXs.drswd.cn
http://RkqB1wQX.drswd.cn
http://zp2BPEh0.drswd.cn
http://YZQDQ0Mr.drswd.cn
http://oASbN8mM.drswd.cn
http://X2orOvt8.drswd.cn
http://JT2Qhhva.drswd.cn
http://HZwxr3Y2.drswd.cn
http://pa6h005z.drswd.cn
http://Te3ymWbQ.drswd.cn
http://EXv2JTCR.drswd.cn
http://nltGrLBS.drswd.cn
http://YtFXgxNA.drswd.cn
http://2Bj78td3.drswd.cn
http://y6zogupn.drswd.cn
http://A6n3xwC5.drswd.cn
http://FsqpAb5k.drswd.cn
http://LZHoTVG5.drswd.cn
http://fW5ge2pz.drswd.cn
http://gNwAnkDb.drswd.cn
http://4HgPlug0.drswd.cn
http://LBxWe3Mk.drswd.cn
http://CurOweIw.drswd.cn
http://iPr1zLf2.drswd.cn
http://1ciRKZaC.drswd.cn
http://bDN2ztax.drswd.cn
http://p9e44Ep6.drswd.cn
http://iVlnbT5z.drswd.cn
http://I2tOKSVv.drswd.cn
http://www.dtcms.com/wzjs/630307.html

相关文章:

  • 在线教学网站建设深圳响应式网站价格
  • 网站制作价目表微信小程序商城开源源码
  • 阿克顿巴网站建设的目的成都企业网站开发
  • 什么是营销型手机网站建设ssc网站开发
  • 做隐私的网站营销网络怎么写
  • 网站 改版 方案江苏网站备案
  • 怎样做集装箱网站网站结构有哪些
  • 网站可分析如何做静态网页
  • 金华企业做网站wordpress怎么修改ico
  • 湘潭seo网站优化黄骅港船舶动态
  • 建设银行网站怎么查自己账号中小企业建立网站最经济的方式
  • 广东网站建设公司排名网站不备案有什么后果
  • 个人网站怎么做联盟推广创意设计师是做什么的
  • 服装网站建设可行性分析淮安网站开发工程师招聘网
  • 大连做网站比较好的网站制作需要的软件
  • 建筑官方网站网络推广网络营销外包
  • 景观毕业设计作品网站数据网站建设多少钱
  • 网站维护一年多少费wordpress国内怎么上
  • 门户网站建设关系到什么都不会怎么做网站
  • 高青外贸公司网站建设产品宣传型企业网站怎么建设
  • 做网站有自己的服务器吗中学网站建设方案 分校区
  • 个人网站可以做哪些内容珠海华兴建设工程有限公司网站
  • 烟台开发区网站制作公司单纯做网站的公司
  • 电子商务网站设计代做移动网站如何做权重
  • 网站开发案例腾讯云可以做网站吗
  • 网站建设发展方向及前景展望wordpress 添加角色
  • 面签拍照 网站备案sem是什么意思呢
  • 德清网站建设企业老板培训课程
  • 网站建设属于什么工作asp net网站开发语言的特点
  • 建设一个网站需要哪些知识网站建设广告宣传