Spring入门笔记(一)

Spring入门第一篇

我的基础是 JavaEE(必须) tomcat JavaWeb相关知识(最好有) maven(必须)
我看的教程 b站视频教程链接
用的是 IDEA jdk12

正式开始

Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。而spring的核心思路就是高内聚低耦合.

控制反转

控制反转是指在原本的设计中,你需要一个对象你就new一个对象,但在spring中,你需要一个对象不需要自己去new,而是让容器给你一个对象,也就是把控制权交给了容器,这就是控制反转的意思.

好处

控制反转的好处在哪里呢,要理解其好处,首先要了解这个控制反转的本质,就是java设计模式中的工厂模式

工厂模式
就相当于对象工厂,专门生产对象,你不用自己去创建对象,只需要输入对象的String名称,就返回一个对象

如下图所示就是一个工厂类,传入一个String类型的参数,就返回一个对象
在这里插入图片描述
那这么做的好处就在于削弱了程序间的耦合
原本如果我有a,b,c三个类,在a类中我需要一个b对象,那我就必须new 一个b,但是这就使得ab之间产生了一定的关系,如果我以后要需求变了,原本a类中需要b类的地方都改为需要c类,那我必须在a类里也修改,这就很麻烦,可能你觉得也不麻烦啊,但如果有100个类全都用到了b的对象呢,难道都要一个个改吗?
这时候工厂模式的好处就体现出来了,原本a类中使用一个String名称向工厂调用一个b类对象,而需求变更后,我只需要修改工厂就行了,把原本名称对应的对象改为c类,而a类中还是使用同一个名称在工厂中调用对象,不需要改动所有a类中的代码,这样a和b,c之间的关系就比较松散,影响小

代码实现

首先new project,然后用maven创建项目

在这里插入图片描述
直接next,然后group什么的随便写
pom.xml里写两段
分别是打包方式和maven的spring依赖

 <packaging>jar</packaging>/
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
    </dependencies>

然后再java文件夹下创建两个类,resource文件夹下创一个bean.xml
在这里插入图片描述
database类中写一个无参构造方法
在这里插入图片描述
然后在bean.xml里标签内部写

id是在工厂中搜索对象的标志,class是完整的类名路径
然后在servlet类中调用工厂并创一个database对象
在这里插入图片描述
此处调用工厂还有另一个类 BeanFactory
两者对比如下

在这里插入图片描述

即单例对象中的饿汉式和懒汉式

在这里插入图片描述

(所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理
单例的好处:没必要每个请求都新建一个对象,这样子既浪费CPU又浪费内存;
多例的好处: 之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理;
选择多例或单例的标准: 当对象含有可改变的状态时(更精确的说就是在实际应用中该状态会改变),则多例,否则单例)

结果如下
在这里插入图片描述
简单的第一步 成功使用IOC!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
## Spring入门学习 首先认识下Spring的结构 ![架构图](http://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/image001.gif) 然后我们皆可以写我们的demo了 ### 我们的Bean类 对于bean的理解,希望大家是把他看成Object对象,他可以是任何对象,甚至是接口,甚至是抽象方法,当然,具体用法大家在以后的使用中会有所认识的; 写一个简单的bean类 ```java package mybatis.study.start.bean; import lombok.Setter; /** * @program: test * @description: helloworld * @author: cutedog * @create: 2019-02-18 22:48 **/ @Setter public class HelloWorld { private String name; public void pritlnHello(){ System.out.println("Spring 3:Hello"); } } ``` #### 写我们的配置文件 一般都是application.xml文件,放在idea的resource目录下,是一个bean注册的配置文件 内容如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="helloBean" class="mybatis.study.start.bean.HelloWorld"> <property name="name" value="Yiibai" /> </bean> </beans> ``` list<provin> Map<city,provincecitymysqq

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值