关键词:
在昨天下午更新sprin第二篇中,叙述了将对象交给spring创建和管理,今天在spring第三篇中,主要写两个点一是spring的思想 二是spring中bean元素的属性配置。
1 spring思想
1.1 IOC(Inverse of Control) :控制反转,将对象的创建权交给了 Spring.
1.2 DI :Dependency Injection 依赖注入.需要有IOC 的环境,Spring 创建这个类的过程中,Spring 将类的依赖的属性设置进去. 实现IOC 需要DI做支持,在注入方式上有set注入
构造函数注入 字段注入 其中set注入是最常用的,构造函数相对来说用的也相对较多。
2 spring 配置详解
2.1 bean元素的配置
clas属性 :被管理对象的完整类名
name属性:需要给被管理对象起一个名字 可以重复
id属性:与name属性一模一样 但是名字不可以重复 建议使用name属性
建立User和Plane两个类(分别有名字年龄以及名字和颜色的属性 生成get和set 同时生成toString方法)---》代码省略
配置代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<bean name="user" class="com/lijun/Demo/User.java"></bean>
</beans>
同时bean元素还可以配置scope 属性 scope的默认值为sigleton ----->单例表示spring容器中只会存在一个实体
配置文件如下
<bean name="user" class="bean.User"></bean>
测试代码如下:
package demo;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import bean.User;
public class Demo {
@Test
public void fun1(){
ApplicationContext ac = new ClassPathXmlApplicationContext("NewFile.xml");
User u = (User)ac.getBean("u");
User u1 = (User)ac.getBean("u");
System.out.println(u==u1);
}
} 结果为true
当配置文件为:<bean name="u" class="bean.User" scope="prototype"></bean>
测试代码不变 结果为false
第三篇:springboot模板freemaker使用
前言spring-boot支持多种模版引擎包括: 1,FreeMarker2,Groovy3,Thymeleaf(Spring官网使用这个)4,Velocity5,JSP(貌似SpringBoot官方不推荐,STS创建的项目会在src/main/resources下有个templates目录,这里就是让我们放模版文件的,然后并... 查看详情
java后端开发第三篇:springboot中资源属性配置及使用(代码片段)
简单记录Springboot中@Configuration,@ConfigurationProperties等与资源属性配置相关的注解使用:pom.xml中添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot- 查看详情
第三篇:函数
第三篇:函数 PYTHON-函数的定义与调用,返回值,和参数PYTHON-函数的定义与调用,返回值,和参数-练习PYTHON-函数对象,嵌套,名称空间与作用域,闭包函数PYTHON-迭代器,xxx生成式PYTHON-有参装饰器,无参装饰器,语... 查看详情
英汉翻译第三篇
Manproposes,Goddisposes.TodoasGoddisposestheAmericanCollegeofSurgeons 美国外科医生学会TrinityCollege剑桥三一学院/?tr?n?ti/入学matriculation毕业graduation 查看详情
第三篇第二章消防给水
防止下水回流 查看详情
css样式(第三篇)
?<divclass=”box1”><divclass=”line”></div><divclass=”box1-1”></div></div>.line {border: 10pxsolid #9f8e02;border-radius: 10px;}.box1-1{width:95%; 查看详情
第三篇第十四章消防供配电
第三篇第十章建筑灭火器配置
深入理解javascript函数系列第三篇
...来创建新的函数对象。本文是深入理解javascript函数系列第三篇——属性和方法 属性【length属性】 函数系列第二篇中介绍过,arguments对象的length属性表示实参个数,而函数的length属性则表示形参个数functiona 查看详情
django框架之第三篇模板语法
Django框架之第三篇模板语法(重要!!!)一、什么是模板?只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板。二、模板语法分类一、模板语法之变量:语法为{{}}:在Django模板中遍历复杂数据结构的关键是句... 查看详情
第三篇
一:站立图 二:燃尽图 三:项目进展待完成任务已完成任务无首页页面改进 购物车增加功能 购物车删除功能 购物车修改功能 用户中心页面改进 成员贡献比王家富24%林... 查看详情
第三篇io流技术(代码片段)
编码和解码packagecom.zzp.demo;importjava.io.UnsupportedEncodingException;/****字符串到字节-->编码*@authorjava**/publicclassContentEncodepublicstaticvoidmain(String[]args)throwsUnsupportedEncodingExceptionStri 查看详情
第三篇:python运算符
运算符 算术运算符 假设以下变量a=10,变量b=20: 赋值运算符 比较运算符 位运算符 逻辑运算符 成员运算符 身份运算符 运算... 查看详情
第三篇
项目冲刺——第三阶段前两阶段很ok,目测这三天可以搞定!分工讨论 大体上搞定,设置困难度的功能还未完成。 团队成员任务郭达 数据库测试刘德培 数据库完善石浩洋 整理文档曾繁钦 界面功能测试孙... 查看详情
深入理解javascript作用域系列第三篇
...为声明提升的存在。本文是深入理解javascript作用域系列第三篇——声明提升(hoisting) 变量声明提升a=2;vara;console.log(a); 直觉上,会认为是undefined,因为vara声明在a=2;之后,可能变量被重新赋值了,因为会被赋予默认值un 查看详情
重构之路第三篇——重新组织数据
本篇目录:1SelfEncapsulateField(自封装字段)2ReplaceDataValuewithObject(以对象取代数据值)3ChangeValuetoReference(将值对象改为引用对象)4ChangeReferencetoValue(将引用对象改为值对象)5 ReplaceArraywithObject(以对象取代数组)6DuplicateObserverdDat 查看详情
jqueryjtemplates.js模板渲染引擎的详细用法第三篇
jqueryjtemplates.js模板渲染引擎的详细用法第三篇<spanstyle="font-family:MicrosoftYaHei;font-size:14px;"><!doctypehtml><htmllang="zh-CN"><head><metahttp-equiv="Content-Type"content="text/ht 查看详情
mybatis第三篇:参数解析
Mybatis的参数传递情况分为:一个参数、Map参数、javaBean参数、多个参数、Collection参数、List参数、Array数组参数。一、一个参数 Dao层的接口方法中传入的参数只有一个,XML文件中的取值变量可以任意写(#{value}可以写任意... 查看详情