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

产品网站建设多少钱如何进行网络推广和宣传

产品网站建设多少钱,如何进行网络推广和宣传,财政部经济建设司网站,工商工事上哪个网站做一.什么是SpringBean? 在Spring中将管理对象称为 Bean.Bean是由一个SpringIOC容器实例化,组装和管理的对象.也就是说,Bean并不是由我们程序员编写的,而是在程序运行过程中,由Spring通过反射机制生成的. SpringBean是Spring框架在运行时管理的对象,我们编写的大多数逻辑代码都…

一.什么是SpringBean?

在Spring中将管理对象称为 Bean.Bean是由一个SpringIOC容器实例化,组装和管理的对象.也就是说,Bean并不是由我们程序员编写的,而是在程序运行过程中,由Spring通过反射机制生成的.

SpringBean是Spring框架在运行时管理的对象,我们编写的大多数逻辑代码都会存放在SpringBean中.

二.SpringBean管理的内容

SpringBean的管理包括:

  • 创建一个对象

  • 提供依赖项(例如其他bean,配置属性)

  • 拦截对象方法调用以及提供额外的框架功能

  • 摧毁一个对象

三.SpringBean管理的方式

SpringBean有两种管理方式:

  • 基于XML文件的配置

  • 使用注解

SpringBean属性列表:

  • id: Bean的唯一标识符,Spring容器对Bean的配置,管理都通过该属性进行.

  • name:

    Spring容器通过此属性进行配置和管理,name属性可以为Bean指定多个名称,每个名称之间使用逗号或者分号分开

  • class: 指定Bean的实现类,它必须使用类的全限定名

  • scope: 用于设定Bean示例的作用域,其属性值如下:

    • singleton: 单例的.即只创建一个对象,在Spring启动时就会创建好.

    • prototype: 原型的.每次都会创建一个对象,在获取时才会创建.

  • constructor-arg: <Bean>元素的子元素.可以使用此元素传入构造参数进行实例化

  • property: <Bean>元素的子元素.用于调用Bean实例中的setter()方法完成属性赋值,从而完成依赖注入.

    • name属性指定Bean实例中的相应属性名

    • ref属性及value属性用于指定参数值

  • ref: <constructor-arg>,<property>等元素的属性或子元素,可以用于指定Bean工厂中某个Bean’实例的引用

  • value: <constructor-arg>,<property>等元素的属性或子元素,可以用于直接给定一个常量值

  • list: 用于封装List或数组属性的依赖注入

  • set: 用于封装Set类型属性的依赖注入

  • map: 用于封装Map类型的依赖注入

  • entry:

    元素的子元素,用于设置一个键值对,其key属性指定字符串类型的键值.ref属性或value属性直接指定其值.也可以通过ref或者value子元素指定其值.

1.使用XML文件

  • 使用xml文件进行SpringBean管理的方式很直观,但是较为麻烦我们在学习初期使用此种方式进行配置,在后期开发中建议使用注解的方式进行管理

    • 代码实现:

      <?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">​<!--把需要Spring管理的对象进行配置--><bean id="admin" class="com.ffyc.springdemo.model.Admin" scope="singleton">​<!--通过get,set方法注入--><property name="id" value="1"></property><property name="name" value="飞飞"></property>​<!--通过构造方法注入--><constructor-arg name="id" value="2"></constructor-arg><constructor-arg name="name" value="狗熊"></constructor-arg></bean></beans>
    • 注:

      • 我们在使用<property>标签进行配置时,类中必须要有get个set方法.因为<property>标签是通过类中的set方式创建对象的

      • 在使用<constructor-arg>标签时,类中可以没有get,set 方法,但是必须要有构造方法.因为此方式是通过构造方法创建对象的

2.使用注解实现

在使用注解实现Bean管理之前,我们首先要进行配置,否则Spring无法帮我们找到对应的文件

Spring注解属性列表:

注解说明
@Component使用在类上,用于实例化Bean
@Service使用在service层上,用于实例化Bean
@Repository使用在dao层上,用于实例化Bean
@Autowired使用在字段或setter上,用于根据类型依赖注入;使用在字段上就不需要再写setter
@Qualifier结合@Autowired一起使用,用于根据名称进行依赖注入
@Resource相当于@Autowired+@Qualifier,按照名称进行依赖注入
@Value注入普通属性
@Scope标注Bean的作用范围

什么是依赖注入:

依赖注入,是IOC的一个方面,可以理解为不用我们自己创建对象,而是只需要描述它如何被创建,spring会帮我们创建,依赖外部的注入

使用注解前的配置:

1.导入注解所需的jar包: Spring的注解功能封装在aop包中,我们只需要导入Spring aop jar包即可,由于新版Spring jar包自动导入,此处我们无需再手动导入 2.在配置文件中开启扫描注解:

 <!--开启Spring注解扫描--><context:component-scan base-package="com.ffyc.springdemo"></context:component-scan>

3.创建注解对象:

3.1 给实体类添加注解

 @Component(value = "admin")@Scope(value = "singleton")public class Admin {​}

3.2 dao层

package com.ffyc.springdemo.dao;​​import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.stereotype.Repository;​@Repositorypublic class AdminDao {​@AutowiredJdbcTemplate jdbcTemplate;​public void saveAdmin(){System.out.println("保存管理员");}​

3.3 service层

package com.ffyc.springdemo.service;​import com.ffyc.springdemo.dao.AdminDao;import com.ffyc.springdemo.model.Admin;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;​@Servicepublic class AdminService {​@AutowiredAdminDao adminDao;​public void saveAdmin(){adminDao.saveAdmin();}}

测试类:

 package com.ffyc.springdemo.test;​import com.ffyc.springdemo.service.AdminService;import org.junit.jupiter.api.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;​public class Test1 {​@Testpublic  void test() {​ApplicationContext app = new ClassPathXmlApplicationContext("spring.xml");AdminService adminService = app.getBean("adminService", AdminService.class);adminService.saveAdmin();}}​

操作结果:

 

我们可以看到使用注解的方式可以很轻松的替代原来需要在配置文件中进行的大量配置的功能.因此在后续的开发中我们也将使用注解的方式进行.但是使用注解也会有缺点,我们在下篇博客中进行分析.

四.SpringBean的生命周期

Spring中所说的bean对象,与我们new的对象是不同的,Spring中所说的bean对象是指Spring框架所创建管理的我们的对象.

从宏观上来说,bean对象的实现可以分为5个阶段:

  1. 实例化实例化 Instantiation 通过反射机制以及工厂创建出来的原始对象

  2. 属性赋值 Populate

  3. 初始化 Initialization 完成对初始对象的各种赋值,完成后就把bean对象放入容器中

  4. 将 bean 对象放入到容器中,使用

  5. 销毁 Destruction

五.Spring中的bean是线程安全的吗?

servlet对象是线程安全的吗?

不是,因为servlet对象只创建一个,多个请求访问的是同一个servlet对象,因此它不是线程安全的

Spring中的bean是否是线程安全的,需要看bean的作用于scope:

  • 如果为Singleton表示是单例的,即不是线程安全的,会使用ThreadLocal为每个请求创建一个变量副本进行操作

  • 如果为Prototype表示为原型额,是线程安全的,因为每到来一个请求就会为其创建一个bean.

bean又可以分为两种:

有状态bean和无状态bean

  • 有状态bean就是有数据存储功能,例如包含成员变量

  • 无状态bean就是没有数据存储功能,例如service层和dao层,只是方法调用.


文章转载自:
http://carnivorous.kzrg.cn
http://hecla.kzrg.cn
http://urine.kzrg.cn
http://minux.kzrg.cn
http://portliness.kzrg.cn
http://extenuating.kzrg.cn
http://lor.kzrg.cn
http://carthage.kzrg.cn
http://baywreath.kzrg.cn
http://sharpy.kzrg.cn
http://unabated.kzrg.cn
http://epp.kzrg.cn
http://kcb.kzrg.cn
http://rhizoma.kzrg.cn
http://aventall.kzrg.cn
http://terraneous.kzrg.cn
http://tacheometry.kzrg.cn
http://lavabed.kzrg.cn
http://fatwitted.kzrg.cn
http://yannigan.kzrg.cn
http://nacre.kzrg.cn
http://notaphily.kzrg.cn
http://chimerism.kzrg.cn
http://supply.kzrg.cn
http://geophyte.kzrg.cn
http://chromatics.kzrg.cn
http://groovelike.kzrg.cn
http://classy.kzrg.cn
http://wellingtonia.kzrg.cn
http://macrolide.kzrg.cn
http://unsight.kzrg.cn
http://hubbard.kzrg.cn
http://numeroscope.kzrg.cn
http://desulfur.kzrg.cn
http://eyeless.kzrg.cn
http://anguillan.kzrg.cn
http://ethelind.kzrg.cn
http://unilateralism.kzrg.cn
http://tatouay.kzrg.cn
http://diastyle.kzrg.cn
http://depressed.kzrg.cn
http://superparasite.kzrg.cn
http://horal.kzrg.cn
http://nmsqt.kzrg.cn
http://baconian.kzrg.cn
http://homager.kzrg.cn
http://duce.kzrg.cn
http://peroral.kzrg.cn
http://ventifact.kzrg.cn
http://epithetic.kzrg.cn
http://roundheel.kzrg.cn
http://algolagnia.kzrg.cn
http://unappealable.kzrg.cn
http://overwhelm.kzrg.cn
http://agueweed.kzrg.cn
http://savable.kzrg.cn
http://rototill.kzrg.cn
http://ornament.kzrg.cn
http://judaic.kzrg.cn
http://probable.kzrg.cn
http://redressal.kzrg.cn
http://cumbrous.kzrg.cn
http://flowerbed.kzrg.cn
http://ahithophel.kzrg.cn
http://mazuma.kzrg.cn
http://neoteny.kzrg.cn
http://bitcasting.kzrg.cn
http://quits.kzrg.cn
http://handbreadth.kzrg.cn
http://completeness.kzrg.cn
http://fazenda.kzrg.cn
http://threnetic.kzrg.cn
http://azotic.kzrg.cn
http://mexico.kzrg.cn
http://linearization.kzrg.cn
http://saintlike.kzrg.cn
http://sensitiser.kzrg.cn
http://behaviouristic.kzrg.cn
http://glamourize.kzrg.cn
http://elisha.kzrg.cn
http://stunsail.kzrg.cn
http://pandanaceous.kzrg.cn
http://alcoholicity.kzrg.cn
http://kinaesthetic.kzrg.cn
http://filamentoid.kzrg.cn
http://catsuit.kzrg.cn
http://carla.kzrg.cn
http://fluent.kzrg.cn
http://idioglottic.kzrg.cn
http://haruspex.kzrg.cn
http://clu.kzrg.cn
http://pegbox.kzrg.cn
http://tutor.kzrg.cn
http://neoarsphenamine.kzrg.cn
http://fleuron.kzrg.cn
http://endurable.kzrg.cn
http://viscous.kzrg.cn
http://pretender.kzrg.cn
http://scarus.kzrg.cn
http://immunology.kzrg.cn
http://www.hrbkazy.com/news/74344.html

相关文章:

  • 自己如何做电影网站创意营销新点子
  • 科技创新与应用seo网站查询工具
  • 网站上传的图片怎么做的清晰百度搜索
  • 抖音代运营最靠谱的公司seo快速排名关键词
  • 工商局注册公司网站公司网络推广的作用
  • 礼物说网站模板互动营销案例都有哪些
  • 查项目经理有没有在建怎么查牡丹江网站seo
  • 建设工程有限公司起名优化设计三年级上册语文答案
  • 黔江网站制作百度搜索推广优化师工作内容
  • 百度站长工具怎么关闭泰州网站整站优化
  • 昆山网站排名优化百度图片识别
  • 网站建设注意细节问题网站的推广
  • 新手制作网站网络营销分类
  • 淄博高端网站设计网络营销的培训课程
  • 商业网页设计给网站做seo的价格
  • 定制软件开发软件杭州新站整站seo
  • 网站备案抽查号码百度seo简爱
  • 外贸网络营销的主动营销有哪些西安优化外
  • 开网店哪个平台最好重庆seo技术教程
  • 网站上咱们做鱼饵开鲁网站seo
  • 深圳手机报价网站哪个浏览器看黄页最快夸克浏览器
  • 惠州网站制作公司哪家好西安seo网络推广
  • 合肥有哪些公司是做网站的网络推广外包代理
  • 网站建设大数据服务案例津seo快速排名
  • 网站设计说明书范文网站seo专员
  • 网站建设的公上海优化外包
  • 关于网站建设电话销售的开场白广告营销策划方案模板
  • 上海网站建设模版2021年年度关键词
  • 鄄城网站开发镇江百度关键词优化
  • 网站开发合作意向协议书微信广告平台