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

网站建设 提案 框架怎么找一手app推广代理

网站建设 提案 框架,怎么找一手app推广代理,html网站开发流程,wordpress小工具九宫格目录 1.Bean的定义 2.Bean的生命周期 3.BeanFactory及Factory Bean 4.Bean的作用域 5.Bean的线程安全问题 1.Bean的定义 JavaBean是描述Java的软件组件模型。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生…

目录

1.Bean的定义

2.Bean的生命周期

3.BeanFactory及Factory Bean

4.Bean的作用域

5.Bean的线程安全问题


 1.Bean的定义

JavaBean是描述Java的软件组件模型。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。

Spring bean是Spring框架在运行时管理对象,是任何Spring应用程序的基本构建块,它与使用关键字new创建的java对象没有区别。

目前,主要通过三种不同的方式定义Spring bean:

  • 使用@Component等相关注解(比如@Service、@Controller等)注释你的类
  • 编写在自定义Java配置类中使用@Bean 注释的bean工厂方法
  • 在XML配置文件中声明bean定义

 一般现在开发中,SpringBoot主要使用注解方法,SpringMVC则主要使用xml文件方法。

以下是SpringBoot常用的定义Bean的案例:

(1)在配置文件中,使用@Bean注解创建Bean:

@Configuration
public class RedissonConfig {@Beanpublic RedissonClient getRedisson(){Config config = new Config();//单机模式  依次设置redis地址和密码config.useSingleServer().setAddress("redis://127.0.0.1:6379");return Redisson.create(config);}
}

(2)业务类Bean(主要是@Service注解标记为业务相关的Bean,具体业务代码请忽略):

@Service
public class PictureService {public boolean test(){return true;}
}

2.Bean的生命周期

在传统的java 应用中,bean 的生命周期很简单。使用Java关键字new 进行实例化,然后bean 就可以使用了,一旦该bean 不再被使用,则由Java自动进行垃圾回收。

而在Spring中,主要遵循 实例化——>属性赋值——>初始化——>使用期——>销毁 这五大步骤:

详细步骤,如上图所示。

  1.  Spring 根据BeanFactory和反射对bean 进行实例化。
  2.  Spring populateBean方法将值和bean的引用注入到bean对应的属性中。
  3.  调用invokeAwareMethod方法检查Aware相关接口:如果bean实现了BeanNameAware接口,Spring将bean的ID传递给setBean-Name()  方法;如果bean 实现了BeanFactoryAware接口,Spring将调用setBeanFactory() 方法,将BeanFactory容器实例传入;如果bean实现了ApplicationContextAware接口,Spring将调用setApplicationContext() 方法,将bean所在的应用上下文的引用传入进来。
  4. 进行前置处理。
  5. 如果bean实现了InitializingBean接口,Spring将调用它们的after-PropertiesSet()方法。
  6. 如果bean自定义了init-method,调用该方法。
  7. 进行后置处理。
  8. 此时, bean 已经准备就绪,可以被应用程序使用了,它们将一直驻留在应用上下文中,直到该应用上下文被销毁。
  9. 如果bean实现了DisposableBean接口,Spring将调用它的destory()接口方法。同样,如果bean使用destroy-method声明了销毁方法,该方法也会被调用。

3.BeanFactory及Factory Bean

BeanFactory创建对象时必须严格遵循Bean的生命周期,较为复杂。

若需要简单的自定义创建对象,且将对象交给Spring处理,那么可以实现FactoryBean接口实现。

其主要和以下三个参数相关:

  1. IsSingeton:是否单例
  2. GetObjectType:获取返回类型
  3. GetObject:自定义创建对象过程(new、反射、动态代理)

4.Bean的作用域

1)singleton:单例,IoC每次返回的都是同一个Bean对象;

2)prototype,IoC每次返回的都是一个新的Bean实例;

3)request,仅对HTTP请求有用,每次HTP请求都会创建一个新的Bean,适用于WebApplicationContext环境;

4)session,仅用于HTTP session,同一个session共享一个Bean实例;

5)global-session,所有session共享一个Bean实例。

一般我们使用默认的单例模式即可。

5.Bean的线程安全问题

由于Bean的对象默认是单例的(即同名的有且只有一个),框架中并没有进行多线程的封装处理。所以,一般不要在Bean中声明如何有状态的实例或者类变量,否则会有数据不一致等相关问题。

如果Bean是有状态的(存有有状态的实例或者类变量),则需要开发人员自己保证线程安全:

  1. 把变量编程线程私有(ThreadLocal);
  2. 把Bean的作用域从singleton改成prototype;
  3. 在代码上加锁(synchronized、lock等)。
http://www.15wanjia.com/news/15848.html

相关文章:

  • 做分享衣服网站的初衷是什么意思百度竞价多少钱一个点击
  • 北京网站制作培训班seo扣费系统
  • 昭通昭阳区城乡建设管理局网站上海关键词优化按天计费
  • xml网站开发工具网络推广宣传
  • 分享惠网站怎么做小学生班级优化大师
  • 大兴网站建设推广千锋教育培训机构怎么样
  • 做的比较好的医院网站郑州疫情最新情况
  • 微友说是做网站维护让帮忙投注成都网站制作关键词推广排名
  • 广州网站建设十年乐云seo引流推广效果好的app
  • wordpress 缩略图模糊seo网站优化软件
  • 网站建设的缺点国际新闻最新消息美国
  • 易营宝自助建站系统关键词优化软件有哪些
  • 做网站id苏州做网站哪家比较好
  • 做网站注册什么性质的公司营销托管全网营销推广
  • 做博彩网站代理犯法吗百度免费下载安装百度
  • 重庆皇华建设集团有限公司网站站长工具亚洲高清
  • 淘宝客自己做网站seo关键词排名怎么优化
  • 建设网站如何写文案济南网络seo公司
  • 卡通风格网站欣赏子域名在线查询
  • 网站建设策划书格式做专业搜索引擎优化
  • 在网站用什么做页面布局5118关键词查询工具
  • 免费养殖网站模板网页设计怎么做
  • 下沙做网站谷歌优化排名怎么做
  • 网站第一关键词怎么做四平网络推广
  • 重庆如何做聚政网站广州 竞价托管
  • 网站域名有了 网站如何建设百度竞价排名的利与弊
  • 做兼职上哪个网站百度自动点击器怎么用
  • 如何做好网站推广广告联盟怎么做
  • 网站三级导航栏代码网站收录情况
  • wordpress运行php长春百度seo公司