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

高品质网站开发网络广告策划与制作

高品质网站开发,网络广告策划与制作,相关网站查询,国外优质网站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/341075.html

相关文章:

  • 如何制作学校网站电商网站模板
  • 品牌宣传网站建设google play商店
  • 外贸做网站建设哪家好网店推广是什么
  • 如何做视频网站百度网盘搜索引擎入口
  • 广州冼村凶杀案现场图片推广优化seo
  • 常德政府网站站长河北网站优化公司
  • 网站建设的公司开发方案优化分析
  • 动php动态网站开发成都seo外包
  • 苏州信网网站建设技术有限公司搜索引擎营销的方法包括
  • 国外网站怎么上线上销售怎么做推广
  • wordpress网站嵌入音乐百度竞价电话
  • 可以做网页的网站站长素材网站
  • 上海做网站的公司电话网络营销的手段有哪些
  • 手机网站开发方式企业微信营销系统
  • 南宁新技术产业建设开发总公司网站推广策划方案怎么写
  • 长春网站建设开发西安百度seo排名
  • 一个网站如何做推广方案青岛网络优化厂家
  • 分销网站有哪些seo优化网页
  • mac服务器 做网站手游cpa推广平台
  • 网站怎么做长尾关键词网站制作公司高端
  • 网站维护是谁做的百度一下官方网
  • 武汉地区网站建设可以直接打开网站的网页
  • 微商可以做网站推广吗阿里云域名
  • 开发app代驾软件多少钱网站seo整站优化
  • 东莞中堂网站建设seo课程哪个好
  • 我请网络公司做的网站上的图片被当广告拦截了_怎么回事百度搜不干净的东西
  • 中国建设人才服务信息网是正规网站百度企业推广怎么收费
  • 仙桃做网站域名被墙查询检测
  • 网站开发工资有多少seo的中文含义是
  • 做动态网站的app全国最新疫情实时状况地图