logo资料库

SSM三大框架面试.pdf

第1页 / 共234页
第2页 / 共234页
第3页 / 共234页
第4页 / 共234页
第5页 / 共234页
第6页 / 共234页
第7页 / 共234页
第8页 / 共234页
资料共234页,剩余部分请下载后查看
今日内容
1.1Spring框架学习路线:
1.2Spring框架的概述:
1.2.1什么是Spring:
1.2.2Spring的核心:
1.2.3Spring的版本:
1.2.4EJB:企业级JavaBean
1.2.5Spring优点:
1.3Spring的入门的程序:
1.3.1下载Spring的开发包:
1.3.2创建web工程引入相应jar包:
1.3.3创建Spring的配置文件:
1.3.4在配置中配置类:
1.3.5创建测试类:
1.3.6IOC和DI(*****)区别?
1.3.7Spring框架加载配置文件:
1.3.8BeanFactory与ApplicationContext区别?
1.3.9MyEclipse配置XML提示:
1.4IOC装配Bean:
1.4.1Spring框架Bean实例化的方式:
无参数构造方法的实例化:
静态工厂实例化:
实例工厂实例化:
1.4.2Bean的其他配置:
id和name的区别:
类的作用范围:
Bean的生命周期:
1.4.3Bean中属性注入:
构造器注入:
setter方法注入:
setter方法注入对象属性:
名称空间p:注入属性:
SpEL:属性的注入:
1.4.4集合属性的注入:
1.4.5加载配置文件:
1.5IOC装配Bean(注解方式)
1.5.1Spring的注解装配Bean
1.5.2Bean的属性注入:
1.5.3Bean其他的属性的配置:
1.5.4Spring3.0提供使用Java类定义Bean信息的方法
1.5.5实际开发中使用XML还是注解?
1.6Spring整合web开发:
1.7Spring集成JUnit测试:
今天的内容总结:
今日内容
1.8上次课的内容回顾:
1.9AOP的概述:
1.9.1什么是AOP:
1.9.2AOP底层原理;
1.9.3Spring的AOP代理:
1.9.4AOP的术语:
1.10AOP的底层实现
1.10.1JDK动态代理:
1.10.2CGLIB动态代理:
1.11Spring中的AOP
1.11.1Spring的传统AOP :
1.11.2Spring中的切面类型:
1.11.3Spring的AOP的开发:
针对所有方法的增强:(不带有切点的切面)
带有切点的切面:(针对目标对象的某些方法进行增强)
1.11.4自动代理:
BeanNameAutoProxyCreator :按名称生成代理
DefaultAdvisorAutoProxyCreator :根据切面中定义的信息生成代理
1.12Spring的AspectJ的AOP(*****)
1.12.1基于注解:
AspectJ的通知类型:
切点的定义:
1.12.2基于XML:
1.13Spring的JdbcTemplate
1.13.1Spring对持久层技术支持:
1.13.2开发JDBCTemplate入门:
1.13.3配置连接池:
Spring默认的连接池:
DBCP连接池:
C3P0连接池:
1.13.4参数设置到属性文件中:
1.13.5JdbcTemplate的CRUD的操作:
今天的内容总结:
今日内容
上次课的内容回顾:
1.14Spring的事务管理:
1.14.1事务:
1.14.2Spring中事务管理:
Spring提供事务管理API:
1.14.3Spring的事务管理:
1.14.4事务操作的环境搭建:
1.14.5Spring的事务管理:
手动编码的方式完成事务管理:
声明式事务管理:(原始方式)
声明式事务管理:(自动代理.基于切面 ******)
基于注解的事务管理:
1.15SSH框架整合:
1.15.1Struts2+Spring+Hibernate导包
1.15.2Struts2和Spring的整合:
1.15.3Struts2和Spring的整合两种方式:
Struts2自己管理Action:(方式一)
Action交给Spring管理:(方式二)
Web层获得Service:
1.15.4Spring整合Hibernate:
零障碍整合:(一)
没有Hibernate配置文件的形式(二)
1.15.5HibernateTemplate的API:
1.15.6OpenSessionInView:
1.16基于注解的方式整合SSH:
今天内容总结:
1SpringMVC架构
1.1Spring web mvc介绍
1.2Web MVC
1.3Spring web mvc 架构
1.3.1架构图
1.3.2架构流程
1.3.3组件说明
2商品订单业务说明
2.1业务流程
2.2数据库环境
2.3商品订单数据模型
3SpringMVC入门
3.1需求
3.2开发环境准备
3.3第一步:建立一个Web项目
3.4第二步:导入spring3.2.0的jar包
3.5第三步:前端控制器配置
3.5.1Servlet拦截方式
3.6第四步:springmvc配置文件
3.7第五步:配置处理器映射器
3.8第六步:配置处理器适配器
3.9第七步:配置视图解析器
3.10第八步:后端控制器开发
3.11第九步:后端控制器配置
3.12第十步:视图开发
3.13第十一步:部署在tomcat测试
3.14DispatcherServlet
3.15HandlerMapping处理器映射器
3.15.1BeanNameUrlHandlerMapping
3.15.2SimpleUrlHandlerMapping
3.16HandlerAdapter处理器适配器
3.16.1SimpleControllerHandlerAdapter
3.16.2HttpRequestHandlerAdapter
3.17注解映射器和适配器
3.17.1Controller的代码
3.17.2组件扫描器
3.17.3RequestMappingHandlerMapping
3.17.4RequestMappingHandlerAdapter
3.17.5
3.18springmvc处理流程源码分析
4整合mybatis
4.1需求
4.2jar包
4.3Dao
4.3.1sqlMapConfig.xml
4.3.2applicationContext-dao.xml
4.3.3ItemsMapper.xml
4.3.4ItemsMapper.java
4.4Service
4.4.1applicationContext-service.xml
4.4.2applicationContext-transaction.xml
4.4.3OrderService
4.5Action
4.5.1springmvc.xml
4.5.2web.xml
4.5.3OrderController
4.6测试
5注解开发-基础
5.1需求
5.2商品修改
5.2.1dao
5.2.2service
5.2.3controller
5.2.4页面
5.3@RequestMapping
5.3.1URL路径映射
5.3.2窄化请求映射
5.3.3请求方法限定
5.4controller方法返回值
5.4.1返回ModelAndView
5.4.2返回void
5.4.3返回字符串
5.4.3.1逻辑视图名
5.4.3.2Redirect重定向
5.4.3.3forward转发
5.5参数绑定
5.5.1默认支持的参数类型
5.5.1.1HttpServletRequest
5.5.1.2HttpServletResponse
5.5.1.3HttpSession
5.5.1.4Model
5.5.2参数绑定介绍
5.5.3@RequestParam
5.5.4简单类型
5.5.4.1整型
5.5.4.2字符串
5.5.4.3单精度/双精度
5.5.4.4布尔型
5.5.5自定义参数绑定
5.5.5.1需求
5.5.5.2propertyEditor
5.5.5.2.1使用WebDataBinder
5.5.5.2.2使用WebBindingInitializer
5.5.5.3Converter
5.5.5.3.1自定义Converter
5.5.5.3.2配置方式1
5.5.5.3.3配置方式2
5.5.6pojo
5.5.6.1简单pojo
5.5.6.2包装pojo
5.5.6.3ModelAttribute
5.5.7集合类
5.5.7.1字符串数组
5.5.7.2List
5.5.7.3Map
5.6问题总结
5.6.1404
5.6.2Post时中文乱码
5.7与struts2不同
6注解开发-高级
6.1上传图片
6.1.1配置虚拟目录
6.1.2配置解析器
6.1.3jar包
6.1.4单个图片上传
6.2Validation(了解)
6.2.1需求
6.2.2加入jar包
6.2.3配置validator
6.2.4将validator加到处理器适配器
6.2.5添加验证规则
6.2.6错误消息文件CustomValidationMessages
6.2.7捕获错误
6.2.8分组校验
6.3异常处理器
6.3.1异常处理思路
6.3.2自定义异常类
6.3.3自定义异常处理器
6.3.4错误页面
6.3.5异常处理器配置
6.3.6异常测试
6.4json数据交互
6.4.1@RequestBody
6.4.2@ResponseBody
6.4.3请求json,响应json实现:
6.4.3.1环境准备
6.4.3.2配置json转换器
6.4.3.3controller编写
6.4.3.4页面js方法编写:
6.4.3.5测试结果:
6.4.4Form提交,响应json实现:
6.4.4.1环境准备
6.4.4.2controller编写
6.4.4.3页面js方法编写:
6.4.4.4测试结果:
6.4.4.5jquery的form插件插件
6.4.5小结
6.5RESTful支持
6.5.1需求
6.5.2添加DispatcherServlet的rest配置
6.5.3URL 模板模式映射
6.5.4静态资源访问
7拦截器
7.1定义
7.2拦截器定义
7.3拦截器配置
7.3.1针对某种mapping配置拦截器
7.3.2针对所有mapping配置全局拦截器
7.4正常流程测试
7.4.1代码:
7.4.2运行流程
7.5中断流程测试
7.5.1代码:
7.5.2运行流程
7.6拦截器应用
7.6.1用户身份认证
7.6.2用户登陆controller
springmvc第二天 注解开发高级知识
1复习
2课程安排
3数据回显
3.1需求
3.2对简单类型的数据回显
3.3pojo类型数据回显
3.3.1方法1:
3.3.2方法2:
3.3.3@ModelAttribute将方法返回值传到页面
4参数绑定集合类型
4.1绑定数组
4.1.1页面定义
4.1.2controller方法定义
4.2绑定List
4.2.1页面定义
4.2.2controller方法定义
5springmvc和struts的区别
6商品图片上传
6.1需求
6.2图片存储问题
6.3配置图片上传解析器
6.4编写上传图片的页面
6.5编写controller方法
7json数据的交互
7.1需求
7.2springmvc解析json加入json解析包
7.3在处理器适配器中注入MappingJacksonHttpMessageConverter
7.4@RequestBody和@ResponseBody
7.5请求json响应json
7.6请求key/value响应json
7.7小结
8validation校验(了解)
8.1加入Hibernate Validator的jar
8.2在处理器适配器中配置校验器
8.3创建CustomValidationMessages
8.4校验规则
8.5捕获错误
8.6在页面上展示错误
8.7分组校验
9统一异常处理
9.1需求
9.2统一异常处理解决方案
9.2.1定义异常
9.2.2异常处理
9.2.2.1定义统一异常处理器类
9.2.2.2配置统一异常处理器
9.2.2.3异常处理逻辑
9.2.2.4测试抛出异常由统一异常处理器捕获
10RESTful支持
10.1什么是RESTful
10.2url的RESTful实现
10.2.1需求
10.2.2第一步更改DispatcherServlet配置
10.2.3第二步参数通过url传递
10.2.4设置静态资源解析
11springmvc拦截器
11.1拦截器的异常场合
11.2springmvc拦截器方法
11.3测试拦截器
11.3.1定义两个拦截器
11.3.2配置拦截器
11.3.3测试1 (1 号和2号都放行)
11.3.1测试2 (1 号放行和2号不放行)
11.3.1测试3 (1 号不放行和2号不放行)
11.3.2日志拦截器或异常拦截器要求
11.4拦截器应用(用户认证拦截)
11.4.1需求
11.4.2用户登陆及退出功能开发
11.4.3用户身份认证校验拦截器
11.4.4拦截器
12学生练习
mybatis第一天 mybatis基础知识
4.开发环境
%.1创建数据库
5.jdbc编程中问题
%.2jdbc程序
%.3jdbc问题总结
6.mybatis架构(重点)
%.4mybatis介绍
%.5mybatis架构
7.mybatis入门程序
%.6需求
%.7导入jar包
%.8工程结构
%.9log4j.properties(公用文件)
%.10SqlMapConfig.xml(公用文件)
%.11根据id查询用户
%.11.1pojo(User.java)
%.11.2User.xml(重点)
%.11.3编码
%.12根据用户名称模糊查询用户信息
%.12.1User.xml
%.12.2编码
%.12.3使用${}接收参数
%.13mybatis开发过程小结
%.14用户添加
%.14.1User.xml
%.14.2编码
%.14.3主键返回
%.15用户删除和更新
%.15.1编码
%.16Mybatis解决jdbc编程的问题
%.17mybatis与hibernate重要区别
%.18总结
%.18.1SqlMapConfig.xml
%.18.2mapper.xml
%.18.3#{}
%.18.4${}
%.18.5selectOne
%.19selectList
8.mybatis开发dao的方法
%.20SqlSession作用范围
%.20.1SqlSessionFactoryBuilder
%.20.2sqlSessionFactory
%.20.3SqlSession
%.21原始dao开发方式
%.21.1dao接口
%.21.2dao接口实现
%.21.3测试代码
%.22mapper代理的方式
%.22.1上边原始dao开发方式的问题
%.22.2mapper开发规范
%.22.3mapper.xml(映射文件)
%.22.4mapper接口
%.22.5将mapper.xml在SqlMapConfig.xml中加载
%.22.6mapper接口返回单个对象和集合对象
%.22.7问题
返回值的问题
输入参数的问题
9.sqlMapConfig.xml
%.23properties属性定义
%.24settings全局参数配置
%.25typeAliases(常用)
%.25.1mybaits提供了很多别名
%.25.2自定义别名
%.25.3使用别名
%.25.4typeHandlers
%.25.5mappers
10.输入和输出映射
%.26parameterType传递pojo包装对象
%.26.1包装类型
%.26.2mapper.xml
%.26.3mapper.java
%.26.4测试
%.26.5异常
%.27resultType
%.27.1返回简单类型
%.28resultMap(入门)
%.28.1resultMap配置
%.28.2使用resultMap
%.28.3mapper.java
11.动态sql(重点)
%.29需求
%.30if和where
%.31sql片段
%.31.1sql片段的定义
%.31.2引用sql片段
%.32foreach
%.32.1在userQueryVo中定义list ids
%.32.2修改where语句
%.32.3测试代码
mybatis第二天 高级映射 查询缓存 和spring整合
12.复习
13.课程计划
14.商品订单数据模型
15.一对一查询
%.33需求
%.34sql语句
%.35使用resultType实现
%.35.1创建po类
%.35.2一对一查询映射的pojo
%.35.3mapper.xml
%.35.4mapper.java
%.36使用resultMap实现一对一
%.36.1resultMap映射思路
%.36.2mapper.xml
%.36.3resultMap定义
%.36.4mapper.java
%.37小结
16.一对多查询
%.38需求
%.39sql语句
%.40resultMap进行一对多映射思路
%.41mapper.xml
%.42resultMap定义
%.43mapper.java
17.一对多查询(复杂)
%.44需求
%.45sql
%.46pojo定义
%.47mapper.xml
%.48resultMap
%.49mapper.java
18.多对多查询(自己实现 )
19.延迟加载
%.50使用延迟加载意义
%.51配置mybatis支持延迟加载
%.52延迟加载实现
%.52.1实现思路
%.52.2mapper.xml
%.52.3resultMap
%.52.4mapper.java
%.52.5测试代码
%.53一对多延迟加载
20.resultType、resultMap、延迟加载使用场景总结
21.查询缓存
%.54缓存的意义
%.55mybatis持久层缓存
%.56一级缓存
%.56.1原理
%.56.2一级缓存配置
%.56.3一级缓存测试
%.57二级缓存
%.57.1原理
%.57.2mybatis二级缓存配置
%.57.3查询结果映射的pojo序列化
%.57.4二级缓存禁用
%.57.5刷新缓存
%.57.6测试代码
%.57.7mybatis的cache参数(了解)
%.58mybatis和ehcache缓存框架整合
%.58.1分布缓存
%.58.2mybatis和ehcache思路
%.58.3下载和ehcache整合的jar包
%.58.4配置ehcache.xml
%.58.5整合测试
%.59二级缓存的应用场景
%.60mybatis局限性
22.mybatis和spring整合
%.61mybaits和spring整合的思路
%.62创建整合工程
%.63加入jar包
%.64log4j.properties
%.65SqlMapconfig.xml
%.66applicationContext.xml
%.67整合开发原始dao接口
%.67.1配置SqlSessionFactory
%.67.2开发dao
%.67.3配置 dao
%.67.4测试dao接口
%.68整合开发mapper代理方法
%.68.1开发mapper.xml和mapper.java
%.68.2使用MapperFactoryBean
%.68.3使用MapperScannerConfigurer(扫描mapper)
%.68.4测试mapper接口
23.mybatis逆向工程 (MyBatis Generator)
%.69什么是mybatis的逆向工程
%.70逆向工程 使用配置
%.70.1xml配置
%.70.2java程序
%.71使用逆向工程生成的代码
%.71.1第一步配置generatorConfig.xml
%.71.2第二步配置执行java程序
%.71.3第三步将生成的代码拷贝到工程 中
%.72测试生成的代码
—高级软件人才实作培训 专家!Spring_day01 总结 今日内容 Spring 框架的概述 Spring 的快速入门 Spring 工厂接口     在 MyEclipse 配置 Spring 的 xml 文件提示    在 web 项目中集成 Spring Spring 整合 junit4 测试  IoC 容器装配 Bean(xml 配置方式) Ioc 容器装配 Bean(注解方式) 1.1 Spring 框架学习路线: Spring 的 Ioc Spring 的 AOP , AspectJ Spring 的事务管理 , 三大框架的整合. 1.2 Spring 框架的概述: 1.2.1 什么是 Spring: Spring 是分层的 JavaSE/EE full-stack(一站式) 轻量级开源框架 * 分层: * SUN 提供的 EE 的三层结构:web 层、业务层、数据访问层(持久层,集成层) * Struts2 是 web 层基于 MVC 设计模式框架. * Hibernate 是持久的一个 ORM 的框架. * 一站式: * Spring 框架有对三层的每层解决方案: * web 层:Spring MVC. * 持久层:JDBC Template * 业务层:Spring 的 Bean 管理. 1.2.2 Spring 的核心: IOC:(Inverse of Control 反转控制) 1
—高级软件人才实作培训 * 控制反转:将对象的创建权,交由 Spring 完成. 专家! AOP:Aspect Oriented Programming 是 面向对象的功能延伸.不是替换面向对象,是用来解决 OO 中一些问题. IOC:控制反转. 1.2.3 Spring 的版本: Spring3.x 和 Spring4.x Spring4 需要整合 hibernate4. 1.2.4 EJB:企业级 JavaBean EJB:SUN 公司提出 EE 解决方案. 2002 : Expert One-to-One J2EE Design and Development 2004 : Expert One-to-One J2EE Development without EJB (EE 开发真正需要使用的内容.) 1.2.5 Spring 优点: 方便解耦,简化开发 * Spring 就是一个大工厂,可以将所有对象创建和依赖关系维护,交给 Spring 管理 AOP 编程的支持 * Spring 提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能 声明式事务的支持 * 只需要通过配置就可以完成对事务的管理,而无需手动编程 方便程序的测试 * Spring 对 Junit4 支持,可以通过注解方便的测试 Spring 程序 方便集成各种优秀框架 * Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、 Quartz 等)的直接支持 降低 JavaEE API 的使用难度 * Spring 对 JavaEE 开发中非常难用的一些 API(JDBC、JavaMail、远程调用等),都提供了封装,使这些 API 应用难度大大降低 1.3 Spring 的入门的程序: 1.3.1 下载 Spring 的开发包: 2
—高级软件人才实作培训 spring-framework-3.2.0.RELEASE-dist.zip 专家! * docs * libs * schema :spring 框架 api 和规范 :spring 开发的 jar 包 :XML 的约束文档. ---Spring 开发包 spring-framework-3.0.2.RELEASE-dependencies.zip ---Spring 开发中的依赖包 1.3.2 创建 web 工程引入相应 jar 包: spring-beans-3.2.0.RELEASE.jar spring-context-3.2.0.RELEASE.jar spring-core-3.2.0.RELEASE.jar spring-expression-3.2.0.RELEASE.jar 开发的日志记录的包: com.springsource.org.apache.commons.logging-1.1.1.jar Hibernate 中 slf4j) com.springsource.org.apache.log4j-1.2.15.jar 1.3.3 创建 Spring 的配置文件: 在 src 下创建一个 applicationContext.xml 引入 XML 的约束: * 找到 xsd-config.html.引入 beans 约束: --- 用于整合其他的日志的包(类似 1.3.4 在配置中配置类: 1.3.5 创建测试类: @Test // Spring 开发 public void demo2() { // 创建一个工厂类. ApplicationContext applicationContext = new ClassPathXmlApplicationContext( 3
—高级软件人才实作培训 "applicationContext.xml"); 专家! HelloService helloService = (HelloService) applicationContext.getBean("userService"); helloService.sayHello(); } 1.3.6 IOC 和 DI(*****)区别? IOC:控制反转:将对象的创建权,由 Spring 管理. DI:依赖注入:在 Spring 创建对象的过程中,把对象依赖的属性注入到类中. * 面向对象中对象之间的关系; * 依赖: public class A{ private B b; } * 继承:is a * 聚合: * 聚集: * 组合: 1.3.7 Spring 框架加载配置文件: ApplicationContext 应用上下文,加载 Spring 框架配置文件 加载 classpath: new ClassPathXmlApplicationContext("applicationContext.xml"); :加载 classpath 下面配置文件. 加载磁盘路径: new FileSystemXmlApplicationContext("applicationContext.xml"); :加载磁盘下配置文 件. 1.3.8 BeanFactory 与 ApplicationContext 区别? ApplicationContext 类继承了 BeanFactory. BeanFactory 在使用到这个类的时候,getBean()方法的时候才会加载这个类. ApplicationContext 类加载配置文件的时候,创建所有的类. ApplicationContext 对 BeanFactory 提供了扩展: * 国际化处理 * 事件传递 * Bean 自动装配 * 各种不同应用层的 Context 实现 ***** 早期开发使用 BeanFactory. 4
—高级软件人才实作培训 1.3.9 MyEclipse 配置 XML 提示: 专家! Window--->xml catalog--->add 找到 schema 的位置 ,将复制的路径 copy 指定位置,选择 schema location. 1.4 IOC 装配 Bean: 1.4.1 Spring 框架 Bean 实例化的方式: 提供了三种方式实例化 Bean. * 构造方法实例化:(默认无参数) * 静态工厂实例化: * 实例工厂实例化: 无参数构造方法的实例化: 静态工厂实例化: 实例工厂实例化: 5
—高级软件人才实作培训 1.4.2 Bean 的其他配置: 专家! id 和 name 的区别: id 遵守 XML 约束的 id 的约束.id 约束保证这个属性的值是唯一的,而且必须以字母开始,可以使用字母、数字、连 字符、下划线、句话、冒号 name 没有这些要求 ***** 如果 bean 标签上没有配置 id,那么 name 可以作为 id. ***** 开发中 Spring 和 Struts1 整合的时候, /login. 现在的开发中都使用 id 属性即可. 类的作用范围: scope 属性 : * singleton * prototype * request :单例的.(默认的值.) :多例的. :web 开发中.创建了一个对象,将这个对象存入 request 范 围,request.setAttribute(); * session :web 开发中.创建了一个对象,将这个对象存入 session 范 围,session.setAttribute(); * globalSession :一般用于 Porlet 应用环境.指的是分布式开发.不是 porlet 环境,globalSession 等 同于 session; 实际开发中主要使用 singleton,prototype Bean 的生命周期: 配置 Bean 的初始化和销毁的方法: 配置初始化和销毁的方法: * init-method=”setup” * destroy-method=”teardown” 执行销毁的时候,必须手动关闭工厂,而且只对 scope=”singleton”有效. Bean 的生命周期的 11 个步骤: 1.instantiate bean 对象实例化 2.populate properties 封装属性 6
—高级软件人才实作培训 3.如果 Bean 实现 BeanNameAware 执行 setBeanName 4.如果 Bean 实现 BeanFactoryAware 或者 ApplicationContextAware 设置工厂 setBeanFactory 或者上 专家! 下文对象 setApplicationContext 5.如果存在类实现 BeanPostProcessor(后处理 Bean) ,执行 postProcessBeforeInitialization 6.如果 Bean 实现 InitializingBean 执行 afterPropertiesSet 7.调用 指定初始化方法 init 8.如果存在类实现 BeanPostProcessor(处理 Bean) ,执行 postProcessAfterInitialization 9.执行业务处理 10.如果 Bean 实现 DisposableBean 执行 destroy 11.调用 指定销毁方法 customerDestroy 在 CustomerService 类的 add 方法之前进行权限校验? 1.4.3 Bean 中属性注入: Spring 支持构造方法注入和 setter 方法注入: 构造器注入: setter 方法注入: setter 方法注入对象属性: 7
—高级软件人才实作培训 名称空间 p:注入属性: 专家! Spring2.5 版本引入了名称空间 p. p:<属性名>="xxx" 引入常量值 p:<属性名>-ref="xxx" 引用其它 Bean 对象 引入名称空间: SpEL:属性的注入: Spring3.0 提供注入属性方式: 语法:#{表达式} 8
分享到:
收藏