Java : Spring基础 IOC
2019-01-10 07:47:42来源:博客园 阅读 ()
使用 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
创建一个工厂,可以用 getBean()获取一个交给spring管理的类实例.
XML配置文件:
bean标签里面id代表名字(name和id差不多,有一些区别),getBean就需要这个id.
class 代表用哪一个类生成实例对象.
init-method 可以指定对象被实例化之后执行的一个方法,需要在类里面实现这个方法
destroy-method 指定对象被销毁之前执行的方法,(前提:是单例(默认就是单例),而且在工厂关闭时才会被销毁.)
scope 代表bean的作用范围:
singleton: 默认, 单例模式
prototype: 多例模式
request: 应用在web项目中,创建之后放到request范围中
session: 应用在web项目中,创建之后放到session范围中
globalsession: 应用在web项目中,必须在porlet环境下使用,如果没有这种环境,那么他就相当于session
属性注入:
构造方法方式: 首先需要声明类的构造函数, 然后在配置里面如:
<bean id="userService" class="com.smile.myweb.UserServiceImpl" scope="prototype">
<constructor-arg name="name" value="哈哈"/>
<constructor-arg name="age" value="18"/>
</bean>
set方法方式:需要声明set方法,然后配置:
<bean id="userService" class="com.smile.myweb.UserServiceImpl" scope="prototype">
<property name="name" value="哈哈"/>
<property name="age" value="18"/>
</bean>
(注意如果属性是一个对象类型,就需要用ref来设置bean的id或name,value是赋普通值用的)
p名称空间的方式(spring2.5以后)首先需要引入 xmlns:p="http://www.springframework.org/schema/p"
然后用p:user="user"赋值普通属性或者用p:user-ref="user"赋值对象属性.
SpEL的方式属性注入:value=#{'String'},字符串类型需要用单引号,对象类型直接写bean的id,也可以使用对象的属性或者方法等进行赋值.
集合类型的属性注入可以这么声明(set, map 同理):
<property name="user">
<list>
<value>王五</value>
<value>李四</value>
</list>
</property>
在xml配置文件中引入别的配置文件 <import resource="applicationContext2.xml"/>
==============================================================================
注解方式IOC:
需要在xml里面配置<context:component-scan base-package="com.smile.myweb"/>
@Component : 修饰一个类,把类交给springIOC容器(相当于<bean>), 里面value相当于类的id.
@Controller : 衍生注解,web层
@Service : 衍生注解,业务层
@Repository : 衍生注解,持久层
初始化方法的注解@PostConstruct, 加在init方法上,相当于init-method
销毁方法的注解@PreDestroy, 加在destroy方法上,相当于destroy-method
bean作用范围的注解:@Scope, 默认是singleton,prototype是多例
属性注入的注解:
@Value : 设置普通属性的值
@Autowired : 设置对象属性的值(默认是按类型来注入对象的,如果需要按id注入,需要搭配@Qualifier(value="beanId"))
(@Resource相当于 @Autowired+@Qualifier,里面的name就相当于beadId,这个是spring实现的规范)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:06-垃圾回收理论
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- Spring系列.ApplicationContext接口 2020-06-11
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash