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

网上销售有哪些方法seo优化专员工作内容

网上销售有哪些方法,seo优化专员工作内容,电子商务营销的发展趋势,长春做公司网站的Spring为Bean提供了多种实例化方式,通常包括4种方式。(也就是说在Spring中为Bean对象的创建准备了多种方案,目的是:更加灵活) 第一种:通过构造方法实例化第二种:通过简单工厂模式实例化第三种&…

Spring为Bean提供了多种实例化方式,通常包括4种方式。(也就是说在Spring中为Bean对象的创建准备了多种方案,目的是:更加灵活)
  • 第一种:通过构造方法实例化
  • 第二种:通过简单工厂模式实例化
  • 第三种:通过factory-bean实例化
  • 第四种:通过FactoryBean接口实例化

1.通过构造方法实例化

默认情况下,会调用Bean的无参数构造方法。

定义一个Bean

package com.powernode.spring6.bean;public class SpringBean {public SpringBean() {System.out.println("SpringBean的无参数构造方法执行");}
}

Spring配置文件

<?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/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--Spring提供的实例化方式,第一种:在spring配置文件中直接配置类全路径,Spring会自动调用该类的无参数构造方法来实例化Bean--><bean id="springBean" class="com.powernode.spring6.bean.SpringBean"/>
</beans>

测试

package com.powernode.spring6.test;import com.powernode.spring6.bean.SpringBean;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class BeanInstantiationTest {@Testpublic void testInstantiation1(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");SpringBean springBean = applicationContext.getBean("springBean", SpringBean.class);System.out.println(springBean);}
}

2.通过简单工厂模式实例化

定义一个Bean

package com.powernode.spring6.bean;
/*** Bean*/
public class Star {public Star() {System.out.println("Star的无参数构造方法执行");}
}

编写简单工厂模式当中的工厂类

package com.powernode.spring6.bean;
/*** 简单工厂模式中的工厂类角色*/
public class StarFactory {// 工厂类中有一个静态方法public static Star get(){// Star对象最终实际上创建的时候还是我们负责new的对象return new Star();}
}

在Spring配置文件中指定创建该Bean的方法(使用factory-method属性指定)

<!--Spring提供的实例化方式,第二种:通过简单工厂模式。你需要在Spring配置文件中告诉Spring框架,调用哪个类的哪个方法获取Bean-->
<!--factory-method 属性指定的是工厂类当中的静态方法。也就是告诉Spring框架,调用这个方法可以获取Bean。-->
<bean id="star" class="com.powernode.spring6.bean.StarFactory" factory-method="get"/>

编写测试程序

@Test
public void testInstantiation2(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");Star star = applicationContext.getBean("star", Star.class);System.out.println(star);
}

3.通过factory-bean实例化

这种方式本质上是:通过工厂方法模式进行实例化。

定义一个Bean

package com.powernode.spring6.bean;
/*** 工厂方法模式当中的 具体产品角色*/
public class Gun {public Gun() {System.out.println("Gun的无参数构造方法执行");}
}

定义具体工厂类,工厂类中定义实例方法

package com.powernode.spring6.bean;
/*** 工厂方法模式中的 具体工厂角色*/
public class GunFactory {// 工厂方法模式中的具体工厂角色中的方法是:实例方法public Gun get(){// 实际上new对象还是我们自己new的return new Gun();}
}

在Spring配置文件中指定factory-bean以及factory-method

<!--Spring提供的实例化方式,第三种:通过工厂方法模式。通过 factory-bean属性 + factory-method属性来共同完成。-->
<!--告诉Spring框架,调用哪个对象的哪个方法来获取Bean。-->
<bean id="gunFactory" class="com.powernode.spring6.bean.GunFactory"/>
<!--factory-bean属性告诉Spring调用哪个对象。factory-method告诉Spring调用该对象的哪个方法。-->
<bean id="gun" factory-bean="gunFactory" factory-method="get"/>

编写测试程序

@Test
public void testInstantiation3(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");Gun gun = applicationContext.getBean("gun", Gun.class);System.out.println(gun);
}

4.通过FactoryBean接口实例化

以上的第三种方式中,factory-bean是我们自定义的,factory-method也是我们自己定义的。

在Spring中,当你编写的类直接实现FactoryBean接口之后,factory-bean不需要指定了,factory-method也不需要指定了。
factory-bean会自动指向实现FactoryBean接口的类,factory-method会自动指向getObject()方法。

定义一个Bean

package com.powernode.spring6.bean;
/*** 普通的Bean*/
public class Person {public Person() {System.out.println("Person的无参数构造方法执行");}
}

编写一个类实现FactoryBean接口

package com.powernode.spring6.bean;import org.springframework.beans.factory.FactoryBean;public class PersonFactoryBean implements FactoryBean<Person> {// PersonFactoryBean也是一个Bean,这个Bean比较特殊,叫做工厂Bean// 通过工厂Bean可以获取普通的Bean@Overridepublic Person getObject() throws Exception {// 最终这个Bean的创建还是我们自己new的return new Person();}@Overridepublic Class<?> getObjectType() {return null;}/*** 这个方法在接口中有默认实现* 默认返回true,表示单例的* 返回false,表示多例的* @return*/@Overridepublic boolean isSingleton() {return FactoryBean.super.isSingleton();}
}

在Spring配置文件中配置FactoryBean

<!--Spring提供的实例化方式,第四种:通过FactoryBean接口来实现。-->
<!--这种方式实际上就是第三种方式的简化。-->
<!--由于你编写的类实现了FactoryBean接口,所以这个类是一个特殊的类,不需要你再手动指定:factory-bean、factory-method-->
<!--通过一个特殊的Bean:工厂Bean。来返回一个普通的Bean Person对象。-->
<!--通过FactoryBean这个工厂Bean主要是想对普通Bean进行加工处理。-->
<bean id="person" class="com.powernode.spring6.bean.PersonFactoryBean"/>

测试程序:

@Test
public void testInstantiation4(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");Person person = applicationContext.getBean("person", Person.class);System.out.println(person);
}

FactoryBean在Spring中是一个接口。被称为“工厂Bean”。“工厂Bean”是一种特殊的Bean。所有的“工厂Bean”都是用来协助Spring框架来创建其他Bean对象的。

5.BeanFactory和FactoryBean的区别

1 BeanFactory

Spring IoC容器的顶级父接口,BeanFactory被翻译为“Bean工厂”,在Spring的IoC容器中,“Bean工厂”负责创建Bean对象。
BeanFactory是工厂。

2 FactoryBean

FactoryBean:它是一个Bean,是一个能够辅助Spring实例化其它Bean对象的一个Bean。

在Spring中,Bean可以分为两类:

  • 第一类:普通Bean
  • 第二类:工厂Bean(记住:工厂Bean也是一种Bean,只不过这种Bean比较特殊,它可以辅助Spring实例化其它Bean对象。)

6 注入自定义Date

java.util.Date在Spring中被当做简单类型,简单类型在注入的时候可以直接使用value属性或value标签来完成。但对于Date类型来说,采用value属性或value标签赋值的时候,对日期字符串的格式要求非常严格,必须是这种格式的:Mon Oct 10 14:30:26 CST 2022。其他格式是不会被识别的。

package com.powernode.spring6.bean;import java.util.Date;/*** 普通的Bean*/
public class Student {// java.util.Date 在Spring当中被当做简单类型,注入日期字符串格式有要求// java.util.Date 在Spring当中也可以被当做非简单类型private Date birth;public void setBirth(Date birth) {this.birth = birth;}@Overridepublic String toString() {return "Student{" +"birth=" + birth +'}';}
}

编写DateFactoryBean类实现FactoryBean接口

package com.powernode.spring6.bean;import org.springframework.beans.factory.FactoryBean;import java.text.SimpleDateFormat;
import java.util.Date;public class DateFactoryBean implements FactoryBean<Date> {// 定义属性接收日期字符串private String strDate;// 通过构造方法给日期字符串属性赋值public DateFactoryBean(String strDate) {this.strDate = strDate;}@Overridepublic Date getObject() throws Exception {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf.parse(strDate);return date;}@Overridepublic Class<?> getObjectType() {return null;}
}

在Spring配置文件中配置

<!--通过工厂Bean:DateFactoryBean来返回普通Bean:java.util.Date-->
<bean id="dateFactoryBean" class="com.powernode.spring6.bean.DateFactoryBean"><constructor-arg index="0" value="1999-10-11"/>
</bean>
<bean id="student" class="com.powernode.spring6.bean.Student"><property name="birth" ref="dateFactoryBean"/>
</bean>

测试:

@Test
public void testDate(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");Student student = applicationContext.getBean("student", Student.class);System.out.println(student);
}
http://www.yayakq.cn/news/292297/

相关文章:

  • 淮南建设公司网站昆明网站建设系统有哪些
  • wordpress网站迁移教程猪八戒网仿照哪个网站做的
  • 嘉兴做网站公司哪家好工业产品设计图
  • wordpress 仿站 教程山西住房城乡建设部网站
  • 15.下面对网站结构描述正确的是( )公司网站模板 免费
  • 湛江网站建站建设程序界面设计
  • 类似一起做网站的网站大学个人网站期末作业
  • seo和网站建设那个先学做淘宝客需要自己建网站吗
  • 泉州企业网站制作定制做网站的客户哪里找
  • 桥梁建设设计网站wordpress md风格
  • 手机网站管理工具黑龙江省建设集团网站
  • 网站排名提升软件99国精产品灬源码的优势
  • 天河做网站哪家强wordpress插图插件
  • 成都工业学院文献检索在哪个网站做零基础 网站
  • 做IT的需要别人打开网站吗兰州新增94个高风险区
  • 帮助做ppt的网站四川建设厅官方网站九大员通知
  • 文化网站建设心得wordpress分类信息导航
  • 湖北省城建设计院网站网站数据分析报表
  • ppt的网站导航栏怎么做wordpress实现登录注册
  • 永兴网站制作成品网站超市源码
  • 广州正规网站建设公司方便做流程图的网站
  • 网站策划包括什么动态静态结合网站
  • 专做韩餐网站新闻类网站开发多久
  • 怎么样查看网站开发语言天津网站建设制作免费
  • 有没有做任务的网站吗05网补充答案全部
  • 如何在记事本中做网站链接php做视频分享网站
  • php做电商网站项目管理咨询公司
  • 会议网站建设的意义莱芜雪野湖介绍
  • 东莞百度seo在哪优化网络的软件
  • 做网站要注意哪些长沙本地推广