spring入门学习
开发步骤:
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入门学习的更多相关文章
- Spring入门学习(一)
SpringMVC基础平台补充(2016.03.03) 如果想要开发SpringMVC,那么前期依次安装好:JDK(jdk-8u74-windows-x64,安装后配置环境变量JAVA_HOME和CL ...
- [Spring入门学习笔记][静态资源]
遗留问题 在上一节课的作业中,我们一定遇到了一点问题——虽然将页面内容正确的返回给了浏览器,但是浏览器显示的样式却是不正确的,这是因为在HTML的\标签中我们这样引入了CSS资源: <link ...
- [Spring入门学习笔记][创建网站URL]
设计网站的URL 现代的Web站点都会设计一套拥有明确意义,方便用户记忆的URL,不论是域名还是路径,以天码营为例: http://tianmaying.com/courses表示网站下所有的课程列表 ...
- [spring入门学习笔记][spring的IoC原理]
什么叫IoC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Dependency ...
- Spring入门学习推荐
该作者的 spring 博客很好,作为学习用 简介 https://blog.csdn.net/column/details/15088.html?&page=1 https://blog.c ...
- [Spring入门学习笔记][Spring的AOP原理]
AOP是什么? 面向切面编程 软件工程有一个基本原则叫做“关注点分离”(Concern Separation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题.这年头互联网也 ...
- [Spring入门学习笔记][Spring Boot]
什么是Spring Boot Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架 ...
- Spring入门学习(二)三种实例化bean的方法
前面的哪一种就是通过构造函数来实例化对象 下面我们可能用到工厂方法来视力话对象,这样我们的配置文件又该怎么配置呢 <bean name="service2" class=&q ...
- Spring入门学习(一)
Spring的主要功能是控制反转和面向切面编程,下面我们就来编写第一个spring的程序来体验一下控制反转 首先是加载配置文件 <?xml version="1.0" enc ...
- Spring入门学习笔记(4)——JDBC的使用
目录 Spring JDBC框架概览 JdbcTemplate类 配置数据源 数据访问对象(Data Access Object,DAO) 执行SQL命令 Spring JDBC框架概览 使用传统的J ...
随机推荐
- rbd-mirror配置指南-单向备份
前言 RBD 的 mirroring 功能将在Jewel中实现的,这个Jewel版本已经发布了很久了,这个功能已经在这个发布的版本中实现了,本来之前写过一篇文章,但是有几个朋友根据文档配置后,发现还是 ...
- Bad magic number ImportError in python
是源码编译里面版本不对,删除掉源码pyc然后重新编译就可以了 find .-name '*.pyc'-delete python -m compileall . 更新历史 why when 创建 20 ...
- VM共享文件夹设置
1.打开设置 2.启动共享文件夹 3.设置共享文件夹向导 4.验证共享是否成功 出现以下情况说明共享成功,否则就是失败
- 今天谁也别想阻止我好好学习!「CDR 6·18特惠倒计时2天!」
前几天小编刷抖音,一个以农夫山泉为创作背景的服装原创视频 让我为之一震 这个自称以捡瓶子为生的服装设计师 让我产生了极为浓烈的兴趣 细扒这位小姐姐的视频 她用身边的常见物品 脑洞大开的画出了一系列插画 ...
- CDR魔镜插件是什么,有哪些功能?
CDR魔镜插件是一款功能强大的CorelDRAW插件,很多CDR用户很早直接就有接触,因其强大的功能性和快速运行的特点被广大用户所喜爱,没有繁琐的选项,无论新人小白,还是制图高手都能够很快的适应,实现 ...
- [工具推荐]制作基于Dash的本地文档方便搜索文档api和内容
[版权声明]:本文章由danvid发布于http://danvid.cnblogs.com/,如需转载或部分使用请注明出处 最近在看es的文档,发现查起api来真的很麻烦,很多现在开源的文档都没有查询 ...
- So Easy! HDU - 4565
易知,有\(S_n = \lceil{a + \sqrt{b}}\rceil ^ n\) \(\because a ^ 2 - 1 < b < a ^ 2\) \(\therefore a ...
- The Balance POJ - 2142
首先,可以知道题目要求解一个\(ax+by=c\)的方程,且\(x+y\)最小. 感性证明: 当\(a>b\)时,\(y\)取最小正整数解,\(b\)减的多,\(a\)增的少,此时\(x+y\) ...
- 一套标准的ASP.NET Core容器化应用日志收集分析方案
讲故事 关注我公众号的朋友,应该知道我写了一些云原生应用收集和分析相关的文章,其中内容大多聚焦某个具体的组件: 超级有用的TraceId,快点用起来吧! 如何利用NLog输出结构化日志,并在Kiban ...
- TIOBE 11月指数:C语言居首,稳居宝座,Python直逼第二!
官方网址:https://www.tiobe.com/tiobe-index/ 这是自近20年前TIOBE指数开始以来,Java和C第一次不再占据前两位.C仍然是第一位的,但是现在第二个位置是 ...