博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring相关
阅读量:6225 次
发布时间:2019-06-21

本文共 1930 字,大约阅读时间需要 6 分钟。

1、spring优势

1)轻量级

2)模块化

3)spring-web框架

4)特定的异常捕获

5)IOC、AOP

6)事务管理

2、DI依赖注入:把许多需要的类合在一起,但又保证各自的独立性;注入的两种方式:构造器注入、setter注入

3、AOP

4、Core Container

1)IOC、AOP框架的基本部分

2)Bean提供BeanFactory

3)Context提供配置文件访问对象

4)SpEL 语法

5、 注解

1)@Repository 数据访问层

2)@Component 表示一个组件

3)@Service  业务层

4)@Constroller  控制层

5)@PostConstruct 和 @PreDestroy  初始化和销毁的 

6)@autowire

      a)no -- 显式指定不使用自动装配

      b)byName

      c)byType

      d)constructor

      e)autodetect 有默认构造器则byType否则constructor

7)@Qualifier("ppp") 提供一个 String 类型的值作为候选的 Bean 的名字;至可以作用于方法的参数

8)@Resource JDK自带,默认byName

6、spring的controller是单例还是多例,怎么保证并发的安全?

默认是单例。

保证:

1)不要在controller中定义成员变量。

2)万一必须要定义一个非静态成员变量时候,则通过注解@Scope("prototype"),将其设置为多例模式。

7、Spring的beanFactory和factoryBean的区别(参考)

1)beanFactory:用于管理Bean的一个工厂,职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。

Resource resource = new FileSystemResource("beans.xml");BeanFactory factory = new XmlBeanFactory(resource);Person p = factory.getBean("person");//getType("")、isSingleton("")...

2)factoryBean:接口

public interface FactoryBean
{ T getObject() throws Exception; Class
getObjectType(); boolean isSingleton();}

8、spring bean 生命周期

1)Bean的作用域可以通过Bean标签的scope属性进行设置,Bean的作用域包括:

默认情况下scope="singleton",那么该Bean是单例,任何人获取该Bean实例的都为同一个实例;
scope="prototype",任何一个实例都是新的实例;
scope="request",在WEB应用程序中,每一个实例的作用域都为request范围;
scope="session",在WEB应用程序中,每一个实例的作用域都为session范围;

注意:在默认情况下,Bean实例在被Spring容器初始化的时候,就会被实例化,默认调用无参数的构造方法。在其它情况下,Bean将会在获取实例的时候才会被实例化。

2)Bean可以通过指定属性init-method指定初始化后执行的方法,以及通过指定属性destroy-method销毁时执行的方法。

语法:<bean ....   destroy-method="销毁时调用的方法名" init-method="初始化后执行的方法名"/>

9、spring 循环注入的原理

有一个类A,A有一个构造器里面的参数是类B,然后类B里面有个构造器参数是类C,类C里面有个构造器参数是类A,就是我们会发现其实引用循环了A 里面有B的引用,B里面有C的引用,C里面又有A的引用。

10、Timer与Quartz的区别有三点:

1.出身不同:Timer由jdk直接提供,调用方式简单粗暴,不需要其它jar包支持。Quartz并非jdk自带,需要引入相应的jar包

2.能力区别:主要体现在对时间的控制上。某个具体时间执行具什么任务的话Timer可以轻松搞定,而比如每个星期天早上八点提醒做某事的功能就需要Quartz,因此Quartz对时间的控制远比Timer强大,完善

3.底层机制:

转载于:https://www.cnblogs.com/beaconSky/p/8052824.html

你可能感兴趣的文章
MySQL 5.7权限的介绍
查看>>
LVS原理详解
查看>>
URLRewrite 研究
查看>>
jdk分析工具:jps和jstack
查看>>
sql性能优化总结
查看>>
windows 7 使用注册表创建影子账户和隐藏账户
查看>>
一个有用的python装饰器 -- 为执行程序加锁
查看>>
linux shell
查看>>
xfs文件系统优化
查看>>
eclipse.ini参数的含义和设置
查看>>
VirtualBox中常用的网络设置
查看>>
用 GetEnvironmentVariable 获取常用系统环境变量
查看>>
手把手安装ZABBIX2.2(CentOS6.5+Zabbix2.2.2)
查看>>
推送通知(本地推送+远程推送)详解
查看>>
ifconfig
查看>>
电子商务风险防控
查看>>
Android列表展示和手指滑动分页
查看>>
我的友情链接
查看>>
final 关键字修饰类、属性、方法的使用
查看>>
字符数组"student a am i"--》"i am a student"
查看>>