开发步骤:

  

1、导入Spring开发的基本坐标

2、编写接口和实现类

3、创建Spring核心配置文件

4、在Spring核心配置文件中配置实现类

5、使用Spring的API获得Bean实例

Bean对象的依赖注入
   
依赖注入:他是Spring框架核心IOC的具体实现。
因为UserService和其实现类都在Spring容器中,而最终程序直接使用的是UserService,
所以可以在Spring容器中,将UserDao设置到UserService内部。

通过两种方式注入:
1、构造方法
2、set方法

注入数据的三种数据类型:
1、普通数据类型
2、引用数据类型
3、集合数据类型

其他配置文件的引入(分模块开发):
  <import resource="applicationContext-xxx.xml/>"

applicationContext:接口类型,代表应用上下文。
它有三种实现:
  1、ClassPathXmlApplicationContext:从类的根路径下加载配置文件
  2、FileSystemXmlApplicationContext:它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置
  3、AnnotationConfigApplicationContext:当使用注解配置容器对象时,需要用到此类来创建spring容器,它是用来读取注解。
 
bean标签的范围配置:  scope属性:singleton:默认值,单例的  prototype:多例的

关于bean实例化的三种方式:
1、无参构造方法实例化
2、工厂静态方法实例化 配置属性:factory-method
3、工厂实例方法实例化 需要先配置工厂对象<bean id="factory" class="工厂的全限命名"/>、

  对象的引用使用ref标签,属性的引用使用value标签

spring的注解开发:

使用注解进行开发时,需要在applicationContext.xml中配置组件扫描
作用是指定哪个包及其自爆下的Bean需要进行扫描以便识别用注解配置的类
,字段和方法。
<context:component-scan base-package="类名(扫描的范围)" ></context:component-scan>


  *@Component :使用在类上用于实例化Bean

  *@Controller :使用在web层上用于实例化Bean

  @Service : 使用在service层类上用于实例化Bean

  @Repository : 使用在dao层类上用于实例化Bean

  @Autowired :使用在字段上用于根据类型依赖注入

  @Qualifier :结合@Autowiered一起使用用于根据名称进行依赖注入 按照id值从容器中进行匹配,但是注意此处@Qualifier结合@Autowired一起使用

  @Resource : 相当于@Autowired + @Qualifier,按照名称进行注入

  @Value : 注入普通属性

  @Scope : 标注Bean的作用范围

   @PostConstruct  :  使用在方法上标注该方法是Bean的初始化方法

  @PreDestroy : 使用在方法上面标注该方法是Bean的销毁方法
 
Spring的新注解:

  @Configuration : 用于指定当前类是一个Spring配置类,当创建容器时会从该类上加载注解 类上面加上它标志该类是spring的核心配置类

  @PropertySource :用于加载配置文件

  @ComponentScan : 用于指定Spring在初始化容器时要扫的包。 组件扫描

  @Bean : 使用在方法上 spring会将当前方法的返回值以指定名称存储到Spring容器中

  @import : 用于导入其他配置类

  spring整合Junit:

  spring集成junit步骤

1、导入spring集成junit 的坐标
2、使用@Runwith注解替换原理啊的运行期 在类上使用 @RunWith(SpringJUit4ClassRunner)
3、使用@ContextCOnfigurarion指定配置文件或配置类
4、使用@Autowired注入需要测试的对象
5、创建测试方法进行测试

@RunWith(SpringJUit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml"):告诉配置文件的位置 使用全注解方式:@ContextConfiguration(classes = {SpringConfiguration.class} )
@Autowired : 测试谁需要加上它
@Test : 进行测试

 
 






spring入门学习的更多相关文章

  1. Spring入门学习(一)

    SpringMVC基础平台补充(2016.03.03) 如果想要开发SpringMVC,那么前期依次安装好:JDK(jdk-8u74-windows-x64,安装后配置环境变量JAVA_HOME和CL ...

  2. [Spring入门学习笔记][静态资源]

    遗留问题 在上一节课的作业中,我们一定遇到了一点问题——虽然将页面内容正确的返回给了浏览器,但是浏览器显示的样式却是不正确的,这是因为在HTML的\标签中我们这样引入了CSS资源: <link ...

  3. [Spring入门学习笔记][创建网站URL]

    设计网站的URL 现代的Web站点都会设计一套拥有明确意义,方便用户记忆的URL,不论是域名还是路径,以天码营为例: http://tianmaying.com/courses表示网站下所有的课程列表 ...

  4. [spring入门学习笔记][spring的IoC原理]

    什么叫IoC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Dependency ...

  5. Spring入门学习推荐

    该作者的 spring 博客很好,作为学习用 简介 https://blog.csdn.net/column/details/15088.html?&page=1 https://blog.c ...

  6. [Spring入门学习笔记][Spring的AOP原理]

    AOP是什么? 面向切面编程 软件工程有一个基本原则叫做“关注点分离”(Concern Separation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题.这年头互联网也 ...

  7. [Spring入门学习笔记][Spring Boot]

    什么是Spring Boot Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架 ...

  8. Spring入门学习(二)三种实例化bean的方法

    前面的哪一种就是通过构造函数来实例化对象 下面我们可能用到工厂方法来视力话对象,这样我们的配置文件又该怎么配置呢 <bean name="service2" class=&q ...

  9. Spring入门学习(一)

    Spring的主要功能是控制反转和面向切面编程,下面我们就来编写第一个spring的程序来体验一下控制反转 首先是加载配置文件 <?xml version="1.0" enc ...

  10. Spring入门学习笔记(4)——JDBC的使用

    目录 Spring JDBC框架概览 JdbcTemplate类 配置数据源 数据访问对象(Data Access Object,DAO) 执行SQL命令 Spring JDBC框架概览 使用传统的J ...

随机推荐

  1. 【翻译】指示器(indicator)的分类

    参考 David Bianco在2015年发布的博文: http://detect-respond.blogspot.com/2013/07/on-misuse-of-indicators.html ...

  2. 用Python写一个病毒

    WARNING 本文仅供学习和测试,请勿用于非法用途. 前言 花了挺长时间去开发的,中间有很多包是抄的,比如DDL注入.关于opencv等等,主要其实做了一些拼接.打包.部署. 写这篇博客并不真的想去 ...

  3. 还不懂java类加载机制的,建议看下这份阿里技术官总结的笔记!

    类加载机制 把class文件加载到内存,并对数据进行校验,准备,解析,初始化,形成可以被虚拟机直接使用的字节码 类加载的时机(触发类的初始化) 使用new关键字实例化对象 读取一个类的静态代码块 使用 ...

  4. 面试官:小伙子,你给我说一下HashMap 为什么线程不安全?

    前言:我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密. 1.jdk1.7中的HashMap 在jdk1.8中对HashM ...

  5. MathType总结编辑括号的类型(上)

    括号的种类有很多,我们用得也很多,可以说无处不见,不只是在数学物理这些自然科学的公式中来断地出现括号,即使是在人文艺术类的领域也会有括号的出现.下面就和小编一起来看看公式编辑器编辑括号的类型吧! Ma ...

  6. 如何在FL Studio中使用自动剪辑(下)

    在上集中我想大家介绍了FL Stduio Automation Clip的创建.播放列表操作及包络线类型介绍,在这篇文章中我将会给大家介绍如何在播放列表中使用Automation,剪辑通道的操作及使用 ...

  7. 从维基百科等网站复制数据和公式到MathType里编辑

    在我们写论文的时候,经常会需要用一些实际案例以及数据,而这些数据和案例有很大一部分可以直接在网络上找到.但是有时候也会发现我们想要的内容和公式,从网页上复制粘贴后太模糊,不适合打印和投影.就需要我们将 ...

  8. Java中对象在内存中的大小、分配等问题

    Java创建一个对象的过程 是否对象指向的类已经加载到内存了 如果没有加载,就要经过load.linking(verification.preparation.resolution).initiali ...

  9. Logstash使用mongodb插件报错: ArgumentError: wrong number of arguments (given 2, expected 1)

    目录 背景 安装插件过程 背景 今天在使用logstash收集日志存储到mongodb的安装过程遇到了个错误,记录下来,错误就是下面这样: 配置文件很简单,由于是测试环境,命令行传入日志输入由ruby ...

  10. appium元素定位总结

    appium元素定位方法总结 使用uiautomator定位 driver.find_element_by_android_uiautomator(uia_string) 根据resourceId属性 ...