Spring的基本使用ioc,今天主要给大家说明了解决强耦合的联系,并且,注入的基本使用

Java里面的强耦合并且讲了spring是如何解决强耦合的
第一种方式使用工厂模式,用的是反射,第二种方式是spring
spring解决强耦合的方式
首先创建个bean.xml文件,在文件里面配置你要 new 的对象,
<bean id="保证唯一性,最好是见名知意" class="你要new的对象的全限定类名">

</bean>
然后是在你需要运行的类的里面使用ClassPathXmlApplicationcontext("里面读取bean.xml文件")
得到的是一个Applicationcantext对象然后给这个对象起一个名字ac(注意:名字起什么都行,只是一个名字而已)
ac.getbean("里面填写的是你在xml文件里面配置的id")
得到的是一个你在xml文件里面配置的class信息实现的接口//列如你在xml文件里面配置的是customerserviceimpl,那么你在这里的返回值就是customerservice
2:得到xml文件的方式
1:ClassPathXmlApplicationcontext("里面直接填写xml文件就可以")
FileSystemXmlApplicationContext("里面填写的是你工作区间里面的这个项目的xml文件的跟路径")
3单列和双列
最好的方法证明的就是创建两个对象比较一下如果为true那就是单列 如果是false那么就是双列
spring里面的单列和双列是怎么配置的呢?
答:scope="singleton" 那么就是单列
scope="prototype" 那么就是双列
初始化和销毁
初始化是在spring里面init-Methods
销毁方法是在spring里面配置的是 destory-Methods
3:给属性赋值
构造方法赋值

<constructor-arg value="你要赋的什么值" name="等于你的字段的名称"></constructor-arg>
<constructor-arg value="你要赋的什么值" index="等于你的字段的角标"></constructor-arg>
<constructor-arg value="你要赋的什么值" type="等于你的字段的类型"></constructor-arg>

给集合赋值一个数组
<property name="等于你集合的名字">
    <array>
        <value>往集合里面添加数据相当于add方法</value>
    </array>//name可以当做姓名也可以当做年龄
    <list></list>//跟上面一样
    <set></set>//跟上面一样
</property>
<property name="map被遍历后的名称">
    <map>
        <entry key="相当于字段名称比如姓名,年龄" value="给字段名赋值"></entry>
    </map>
</property>
给properties赋值
<property>
    <props>
        <prop key="跟map的key是一样的">在中间写value</prop>
    </props>
</property>
给引用数据类型赋值
<bean id="customerservice" class="cn.ql.service.impl.CustomerServiceImpl">
            <property name="创建接口没有给他实例化在这里写上给接口起的名字" ref="跟下面的id保持一致的"></property>
        </bean>
        <bean id="实现类的类名,可以随便起,但是最好起到见名知意的作用" class="实现类的全限定类名"></bean>
    注意:    上面这些都是需要提供set方法的
        集合跟properties是需要遍历的,遍历之后要在<property name="里面起遍历之后的名字">

spring的基本使用的更多相关文章

  1. 基于spring注解AOP的异常处理

    一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...

  2. 玩转spring boot——快速开始

    开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...

  3. Spring基于AOP的事务管理

                                  Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务 ...

  4. [Spring]IoC容器之进击的注解

    先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...

  5. 学习AOP之透过Spring的Ioc理解Advisor

    花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...

  6. 学习AOP之深入一点Spring Aop

    上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实 ...

  7. 学习AOP之认识一下Spring AOP

    心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是 ...

  8. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  9. Spring之旅(2)

    Spring简化Java的下一个理念:基于切面的声明式编程 3.应用切面 依赖注入的目的是让相互协作的组件保持松散耦合:而AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件. AOP面向切面 ...

  10. Spring之旅

    Java使得以模块化构建复杂应用系统成为可能,它为Applet而来,但为组件化而留. Spring是一个开源的框架,最早由Rod Johnson创建.Spring是为了解决企业级应用开发的复杂性而创建 ...

随机推荐

  1. Python冒号的解释

    1. "没什么首次没有为第二个,跳了三个".它得到的切片序列的每一个第三个项目. 扩展片是你想要的.新在Python 2.3 2. Python的序列切片地址可以写成[开始:结束: ...

  2. NOIP2012junior—P1—质因数分解

    NOIP2012junior-P1-质因数分解 时间: 1000ms / 空间: 131072KB [背景] NOIP2012[描述] 已知正整数n 是两个不同的质数的乘积,试求出较大的那个质数. [ ...

  3. C# 在RichTextBox中滚动鼠标时滚动的是父窗口的滚动条

    1. RichTextBox u2 = new RichTextBox(); 2. 先记住日RichTextBox没有显示滚动条时的总宽度和显示宽度 u2.Width - u2.ClientSize. ...

  4. JS的隐式转换 从 [] ==false 说起

    前言 最近和大创扯淡时说到了[] == false,从结果上来看我俩都答错了,从气势上来说我俩的歪理都能出书了(恩,程序猿的骄傲),但是这其实背后隐藏了一潭很深的水,对,很深... 隐式类型转换 JS ...

  5. Linux 网络编程中的read和write函数正确的使用方式

    字节流套接字上的read和write函数所表现的行为不同于通常的文件IO,字节流套接字上调用read和write输入或输出的可能比请求的数量少,然而这不是出错的状态,例如某个中端使read和write ...

  6. webpack踩坑之旅

    1.安装webpack失败问题 错误原因: 这主要是我以普通用户的身份进行webpack的全局安装,权限不够. [普通用户] 说白了就是通过运行window+r+cmd进入的命令行 解决方式: 用管理 ...

  7. MFC控件实现视频“暂停” “播放”循环

    问static有什么作用,朗朗上口,可是用起来呢 MFC"按钮"控件实现开始显示"播放",按一下之后就开始播放相关视频,并且按钮显示为"暂停" ...

  8. 为PHP摇旗呐喊!

    如今市场上的电子商务软件基本上可归结为两大阵营.即PHP阵营和Java阵营.但对接触电子商务不久的用户来说.看到的往往仅仅是它们的表相,仅仅是明显的价格差异.却非常难看出它们之间的实际差异.事实上,P ...

  9. springboot(十五):springboot+jpa+thymeleaf增删改查示例

    这篇文章介绍如何使用jpa和thymeleaf做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个demo来试试它的效果,越简单越容易上 ...

  10. WebGL学习(3) - 3D模型

      原文地址:WebGL学习(3) - 3D模型   相信很多人是以创建逼真酷炫的三维效果为目标而学习webGL的吧,首先我就是