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

品牌网站建设小蝌蚪1a网站建设 长沙开福区

品牌网站建设小蝌蚪1a,网站建设 长沙开福区,网页框架图,下载了一个asp网站但不知道管理员密码怎么办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://www.dtcms.com/wzjs/839955.html

相关文章:

  • 网站如何添加统计代码微信商城开发需要多少钱
  • 住房和城乡建设部网站进不去宿迁东岸网络技术有限公司
  • 个人域名备案网站名称例子wordpress 大神
  • 房产网站建设整体架构瑞安企业网站建设
  • 网站开发如何模块化把网站做成微信小程序
  • 免费域名模板建站网络运维工程师自学
  • 网站域名注册规则做一个学校网站怎么做
  • 德州有做网站的合肥建设官方网站
  • 手机就可以直接做设计的网站网站备案需要多少钱
  • 网站建设与制作 试卷与答案宣武深圳网站建设公司
  • 网站建设数据库是什么意思wordpress 福利源码
  • 长丰县建设局网站如何用c 做网站背景
  • 厦门无忧网站建设有限公司眉山营销型网站建设
  • 设计网站界面网站建设公司itcask
  • 网站界面是什么做的宁波甬晟园林建设有限公司网站
  • 做相亲网站的安全责任二维码转链接
  • php在网站后台建设中的优势电子商务网站建设与维护概述
  • 网站模版亮点注册资本可以随便填吗
  • 品牌网站如何建设百度商城
  • 滦南县建设局网站app软件定制注意事项
  • 住房和城市建设厅网站怎么用阿里云建网站
  • 网站推广网站策划网站建设续费是什么费用
  • 红色大气网站模板做电子签章登录哪个网站
  • php 爬取网站所有链接高端瓶装水品牌
  • 河北公司网站制作设计网站建设捌金手指下拉二六
  • 建行网站win7搭建wordpress
  • 工业设计 做自己的网站 知乎茶文化网站网页设计
  • 淮北市建设安全监督站网站北京电力交易中心 庞博
  • 盐城网站建设效果破解wordpress主题教程
  • 电商网站规划论文wordpress怎样禁止采集