JavaEE 之 Spring(一)
1.Spring
a.作用:降低组件与组件之间的关联,便于系统的维护和拓展
b.核心思想:
①IOC:控制反转——配置文件依赖注入
②AOP:面向切面编程
2.IOC/DI
a.建配置文件
<?xml version="1.0" encoding="UTF-8"?>
<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:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd"> <bean id="jdbcDao" class="class01.JdbcDao"></bean>
<bean id="myBatisDao" class="class01.MyBatisDao"></bean>
<bean id="userService" class="class01.UserService">
<property name="dao" ref="jdbcDao"></property>
</bean>
</beans>
b.在service层申明private UserDao dao, 并提供对应的set方法
c.在表现层实例化service的类
//使用BeanFactory的方法(已过时,不建议使用)
Resource resource=new ClassPathResource("applicationContext.xml");
BeanFactory factory=new XmlBeanFactory(resource);
//使用ApplicationContext的方法(建议使用)
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); UserService service = (UserService)act.getBean("userService");
d.Bean的生命周期
①Spring实例化bean
②Spring注入bean的属性
③Spring设置bean的名字
④初始化
⑤预处理
⑥bean准备完毕可以使用
⑦销毁bean
注:Bean对象一般是随着容器的启动而产生的
e.Bean的属性
①lazy-init="true"——加载时不被初始化,在使用时才初始化
②scope="singleton"——默认为单利模式
scope="prototype"——原型模式
③init-method="(方法名)"——初始化时执行方法
④destroy-method="(方法名)"——销毁时执行方法
f.依赖注入的两个方法
①属性注入
<property name="" ref=""></property>
②构造注入
<constructor-arg name="dao" ref="MyBatisDao"></constructor-arg>
g.集合属性注入
①List
<property name="要注入集和的名字">
<list>
<value>zhangsan</value>
<value>李四</value>
</list>
</property>
②Set
<property name="names">
<set>
<value>zhangsan</value>
<value>李四</value>
</set>
</property>
③Map
<property name="maps">
<map>
<entry key="cd" value="成都"></entry>
<entry key="bj" value="北京"></entry>
</map>
</property>
④properties
<property name="properties">
<props>
<prop key="userName">root</prop>
<prop key="userPwd">admin</prop>
</props>
</property>
h.自动装配(少用)
autowire:byName、byType、constructor、autodetect
i.继承
<bean id="animal" class="com.wode.test.Animal" abstract="true">
<property name="name" value="动物"></property>
<property name="age" value="1"></property>
</bean>
<bean id="dog" class="com.wode.test.Dog" parent="animal"></bean>---这里的parent就指派了它的父类
<bean id="cat" class="com.wode.test.Cat" parent="animal"></bean>
j.注解的使用方式(福利)
@Repository代表用于dao层的组件
@Service代表用于service层的组件
@Controller代表Action层的组件
@Component代表表示其他的组件
注意:如果不加任何参数,则id于当前的类名保持一致
@Resource--先按照类型,再按照名字来匹配
@Autowired---这种方式是自动去找想匹配的,找到了自动注入进来
@Resource--先按照类型,再按照名字来匹配---演示错误在获取的时候,我们还可以通过别的方式获取
@Autowired---这种方式是自动去找想匹配的,找到了自动注入进来同样存在上边的问题,使用@Qualifier("idName")来解决
JavaEE 之 Spring(一)的更多相关文章
- JavaEE 之 Spring Data JPA
1.事务 a.事务的关键属性(ACID) ①原子性(atomicity):事务的原子性确保动作要么全部完成,要么完全不起作用 ②一致性(consistency):一旦所有事务动作完成,事务就被提交.也 ...
- JavaEE 之 Spring(三)
1.Spring Web MVC a.定义:是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是 ...
- JavaEE与Spring
在Java社区中,Spring与Java EE之争是个永恒的话题.在这场争论中,来自两个阵营的布道师.架构师与铁杆粉丝都在不遗余力地捍卫着本方的尊严,并试图说服对方加入到自己的阵营当中,但结果却是双方 ...
- [JavaEE] IBM - Spring 系列: Spring 框架简介
Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的.强壮的 J2EE 应用程序.develop ...
- JavaEE高级-Spring Data学习笔记
Spring Data概述 - Spring Data : Spring 的一个子项目.用于简化数据库访问,支持NoSQL 和 关系数据存储.其主要目标是使数据库的访问变得方便快捷. - Spring ...
- JavaEE高级-Spring学习笔记
*Spring是什么? - Spring是一个开源框架 - Spring为简化企业级应用开发而生.使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能 - Spring是一个I ...
- 关于JavaEE中Spring模块的学习!
七大模块,如下: 1. Spring Core: Core封装包是框架的最基础部分,提供IOC和依赖注入特性.这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性 ...
- JavaEE 之 Spring Data JPA(二)
1.JPQL a.定义:Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以被编译成 ...
- JavaEE 之 Spring(二)
1.AOP(面向切面编程) a.定义:AOP将分散在系统中的功能块放到一个地方——切面 b.重要术语: ①切面(Aspect):就是你要实现的交叉功能---共通业务处理可以被切入到多个目标对象.并且多 ...
随机推荐
- linq基本操作
一.Linq有两种语法: 1. 方法语法 2. 查询语法 下面举个例子看看这两种方法的区别 比如现在有一个学生类 public class student { public string user ...
- 点击<a>标签后禁止页面跳至顶部
一.点击<a>标签后禁止页面跳至顶部 1. 使用 href="javascript:void(0);",例如: <a href="javascript: ...
- Oracle11g 体系结构
一:Oracle11g 体系结构 二:逻辑储存结构 二.1:数据块(data blocks) ----通过 v$parameter数据字典来查询oracle标准数据块的大小. SYS@orcl> ...
- 关于《common-net》的ftp上传
1:jar的maven的引用: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...
- Confluence 6 修改 Home 目录的位置
当 Confluence 第一次启动的时候,Confluence 将会读取 confluence-init.properties 文件并从这个文件中确定如何去查找 Home 目录. 希望修改 home ...
- Confluence 6 自定义管理员联系信息
你可以自定义在 联系站点管理员(Contact Site Administrators)页面中显示的消息. 希望编辑这个管理员联系消息: 在屏幕的右上角单击 控制台按钮 ,然后选择 General C ...
- LeetCode(98): 验证二叉搜索树
Medium! 题目描述: 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右 ...
- cf441 f组合数。。单调指针
e没学过做不出来.. 处理合法的区间很麻烦,但是处理非合法的区间很容易 答案就是所有的取法-不合法的区间 这题一定要双边界推进处理!!!! 一开始用单边界向右推进,结果后来发现错了,拿样例1就可以证明 ...
- 第四周学习总结-HTML
2018年8月5日 这是暑假第四周,这一周我在菜鸟教程网学到了许多HTML的知识.HTML编写网页不像C语言.Java语言那必须有主方法.主函数什么的,它基本上都是标签(元素),但是它可以与CSS(层 ...
- XMind思维导图使用笔记
首先新建一个空白的图 以组织结构图(向下) 为例 1.双击组织结构图 创建一个空白的页面 2.随便选择一个风格 这时候出现工作台 现在里面只有一个中心主题 正文部分开始 1.如果想要添加一个子主题 ...