Spring到底是什么

一、spring到底是什么

Spring 是分层的Java SE/EE应用 轻量级开源框架,ioc (控制翻转)和AOP (面向切面编程)为内核,能够整合开源世界众多著名的第三方框架和类库,逐渐成为使用醉倒的Java EE企业应用开源框架

通俗讲Spring就是一个容器,用来存放 同类内容的集合 就叫做容器

现实中的容器:教室【存放桌子 椅子 板凳】 Java中的容器【List集合 数组】

二、spring是用来干嘛的

管理对象 目的是解耦 核心是IOC 和AOP

三、spring的生命周期是什么  都有哪些 在xml中如何编写

3.1 对象的创建

/*创建一个新对象*/

//1).获取xml文件 读取
ClassPathXmlApplicationContext c = new ClassPathXmlApplicationContext("spring01.xml");

//2).拿取对象
        Date date = c.getBean("date", Date.class);

//3).输出语句
        System.out.println("date = " + date);

在xml中代码编写 bean标签 id class

<bean id="date" class="java.util.Date"></bean>

<!--id的命名 一般来说都是路径类名的小写 方便管理代码-->
<!--class的命名 是路径类名-->

3.2 调用   init-method="flowerInit"
3.3 销毁 destroy-method="flowerDestory"

四、什么是IOC

A.控制翻转 把创建对象的权利交给Spring

B.削减计算机程序的耦合(接触我们代码中的依赖关系)

a.创建对象的 控制权,本来由该方法创建,现在变成spring用反射创建(利用读取xml中的bean标签)
b.对象可以一下子全部创建出来,不在项目中去 new对象,那么对整个项目到了解耦的作用。达到了开闭原则

五、Spring有哪些优势

1.方便解耦 简化开发

2.AOP编程支持 声明事务支持

3.方便程序的测试 方便集成各种优秀框架

六、什么是耦合?

就是指的两个对象之间有依赖关系 这种依赖关系 如果拿掉一个环节 项目就跑不动了

七、什么是解耦?

就是利用多态 或者 反射 把两个对象间的依赖关系 降低到最低

八、创建对象的三种方式

1.new 常用
2.静态工厂
3.实例工厂创建对象 (本质还是new)

九、什么是实例工厂 什么是静态工厂

在java中,获取一个类的最简单的实例化就是new,通过构造函数来实现对方法的调用

        Water water=new Water();
       
        Date date=new Date();

就是先创建类对象,然后通过对象来调用创建实例对象的方法(实例工厂)

不过在实际开发中,我们也会使用到类似这样的代码

 Calendar calendar = Calendar.getInstance();

这个可以理解为可以通过静态方法来实例化一个对象(静态工厂不可以被直接new)

在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" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
	
	<!--下面是静态工厂 和 实例工厂 创建对象-->

	<bean id="calendar" class="java.util.Calendar" factory-method="getInstance"></bean>
	<!--静态工厂不能被直接new-->

	<!--实例工厂 创建对象 跟new 对象有区别 底层都是new-->
	<bean id="time" factory-bean="calendar" factory-method="getTime"></bean>

</beans>

十、什么是延迟加载

spring容器默认加载bean为即时加载,既在没有使用类的情况下,会初始化bean对象,这样会造成内存及性能的浪费,

设置延迟加载有两种方式 一种是在xml中 一种是注解的方式

xml中设置延迟加载:default-lazy-init="true"

注解延迟加载:

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙趣生花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值