Spring 基础使用
1 id 和 name 的区别
id:不可重复,不可包含特殊字符
name:可以重复,可以包含特殊字符
2 scope
singleton:配置单例模式(默认),在容器启动时创建对象,而且只创建一个
prototype:配置多例模式,在容器启动时不创建对象,当获取对象时才创建
3 lazy-init
true:延迟创建对象,容器启动时不创建,获取时再创建,只适用于单例模式
false:(默认)
4 init-method 和 destroy-mothod
init-method:初始化调用方法
destroy-mothod:销毁时调用方法
config: <bean name="p1" id="p2" scope="singleton" lazy-init="true" init-method="init" destroy-method="destroy"
class="com.roxy.spring.pojo.Person"></bean> test:
@Test
public void testIdAndName() {
//创建容器
AbstractApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//查找对象
Person p1 = (Person)context.getBean("p1");
Person p2 = (Person)context.getBean("p1");
context.destroy();//执行销毁
// context.close();//触发销毁
}
console:
Creating shared instance of singleton bean 'p2'
Creating instance of bean 'p2'
构造方法被调用
Eagerly caching bean 'p2' to allow for resolving potential circular references
Invoking init method 'init' on bean with name 'p2'
Person被初始化!
Invoking destroy method 'destroy' on bean with name 'p2'
Person被销毁!
5 注解式开发:
注意导入包以及添加命名空间 <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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.roxy.spring.pojo"></context:component-scan>
</beans> 在使用注解式开发,@Autowired自动装配引入对象类型的时候,会出现一个类型对应多个对象的问题 eg:
car1{
name : 小黄车
color : yellow
}
car2{
name : 小蓝车
color:blue
}
person{
name : draco
age : 17
car : ?
}
使用@Qualifiter指定具体的对象
使用@Resource制定具体的对象
Spring 基础使用的更多相关文章
- Spring基础知识
Spring基础知识 利用spring完成松耦合 接口 public interface IOutputGenerator { public void generateOutput(); } 实现类 ...
- spring基础整理
spring基础教程:https://www.tutorialspoint.com/spring/spring_overview.htm 注入实例 <bean id="" c ...
- Spring 基础知识
Spring架构简单描述 原文:https://www.shiyanlou.com/courses/document/212 Spring 概述 1. Spring 是什么 Spring是一个开源的轻 ...
- Spring基础配置
从毕业到现在我一直从事Android开发,但是对JavaEE一直念念不忘,毕业校招的时候,一个礼拜拿了三个offer,岗位分别是Android.JavaEE和JavaSE,后来觉得Android比较简 ...
- Spring基础系列--AOP织入逻辑跟踪
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9619910.html 其实在之前的源码解读里面,关于织入的部分并没有说清楚,那些前置.后 ...
- 第65节:Java后端的学习之Spring基础
Java后端的学习之Spring基础 如果要学习spring,那么什么是框架,spring又是什么呢?学习spring中的ioc和bean,以及aop,IOC,Bean,AOP,(配置,注解,api) ...
- Spring基础系列-AOP源码分析
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9560803.html 一.概述 Spring的两大特性:IOC和AOP. AOP是面向切 ...
- Spring基础系列-Spring事务不生效的问题与循环依赖问题
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9476550.html 一.提出问题 不知道你是否遇到过这样的情况,在ssm框架中开发we ...
- Spring Boot实战(1) Spring基础
1. Spring基础配置 Spring框架本身有四大原则: 1) 使用POJO进行轻量级和最小侵入式开发 2) 通过依赖注入和基于接口编程实现松耦合 3) 通过AOP和默认习惯进行声明式编程 4) ...
- spring基础学习01
spring基础 Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用 IOC控制反转 把创建对象和维护对象之间的关系权利 ...
随机推荐
- java解决高并发
1.redis ----------linkedblockQueue rpop lpush 2. 使用消息队列MQ 考虑到数据的一致性,队列的容量就是商品的剩余数量,队列采用的是线程安全的队列Li ...
- 06-python opencv 使用摄像头捕获视频并显示
https://blog.csdn.net/huanglu_thu13/article/details/52337013
- 关于epoll的IO模型是同步异步的一次纠结过程
这篇文章的结论就是epoll属于同步非阻塞模型,这个东西貌似目前还是有争议,在新的2.6内核之后,epoll应该属于异步io的范围了,golang的高并发特性就是底层封装了epoll模型的函数,但也有 ...
- CUDA Samples: 获取设备属性信息
通过调用CUDA的cudaGetDeviceProperties函数可以获得指定设备的相关信息,此函数会根据GPU显卡和CUDA版本的不同得到的结果也有所差异,下面code列出了经常用到的设备信息: ...
- HDU 1591 Encoded Love-letter(简单字符串)
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- ListBox item Sort
将Rss内容读取到Listbox control中, 然后实现按照标题或发布日期进行排序. private void ListItemSort(string type) { if (type == & ...
- Fluxbox 添加Qt应用程序menu
/********************************************************************************* * Fluxbox 添加Qt应用程 ...
- shell 脚本实战笔记(11)--Mysql在linux下的安装和简单运维
前言: linux中安装mysql以及配置的管理, 基础的运维和管理还是需要会一些的. 这边作下笔记, 以求天天向上(^_^). 安装流程:*). 安装mysql-server1). 借助yum检索相 ...
- 【linux】wifi不能使用的问题
Worked solution (Requirements: kernel >=4.11) : Download driver directory from this repo:https:// ...
- opencv-python教程学习系列5-处理鼠标事件
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv-python处理鼠标事件,坚持学习,共同进步. 系列教程参照OpenCV-Pytho ...