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(一)的更多相关文章

  1. JavaEE 之 Spring Data JPA

    1.事务 a.事务的关键属性(ACID) ①原子性(atomicity):事务的原子性确保动作要么全部完成,要么完全不起作用 ②一致性(consistency):一旦所有事务动作完成,事务就被提交.也 ...

  2. JavaEE 之 Spring(三)

    1.Spring Web MVC a.定义:是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是 ...

  3. JavaEE与Spring

    在Java社区中,Spring与Java EE之争是个永恒的话题.在这场争论中,来自两个阵营的布道师.架构师与铁杆粉丝都在不遗余力地捍卫着本方的尊严,并试图说服对方加入到自己的阵营当中,但结果却是双方 ...

  4. [JavaEE] IBM - Spring 系列: Spring 框架简介

    Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的.强壮的 J2EE 应用程序.develop ...

  5. JavaEE高级-Spring Data学习笔记

    Spring Data概述 - Spring Data : Spring 的一个子项目.用于简化数据库访问,支持NoSQL 和 关系数据存储.其主要目标是使数据库的访问变得方便快捷. - Spring ...

  6. JavaEE高级-Spring学习笔记

    *Spring是什么? - Spring是一个开源框架 - Spring为简化企业级应用开发而生.使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能 - Spring是一个I ...

  7. 关于JavaEE中Spring模块的学习!

    七大模块,如下: 1. Spring Core: Core封装包是框架的最基础部分,提供IOC和依赖注入特性.这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性 ...

  8. JavaEE 之 Spring Data JPA(二)

    1.JPQL a.定义:Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以被编译成 ...

  9. JavaEE 之 Spring(二)

    1.AOP(面向切面编程) a.定义:AOP将分散在系统中的功能块放到一个地方——切面 b.重要术语: ①切面(Aspect):就是你要实现的交叉功能---共通业务处理可以被切入到多个目标对象.并且多 ...

随机推荐

  1. Confluence 6 用户目录图例 - 连接 Jira

    上面的图:Confluence 连接到 JIRA 为用户管理. https://www.cwiki.us/display/CONFLUENCEWIKI/Diagrams+of+Possible+Con ...

  2. SpringBoot获取配置文件的自定义参数

    1.在application.properties中自定义参数 spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datas ...

  3. BeatifulSoup模块

    一.介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你 ...

  4. 【linux】Linux误删C基本运行库libc.so.6急救方法

    转自:http://www.cnblogs.com/fjping0606/p/4551475.html 下面全文都是拷贝的上面链接的内容. 首先普及一下关于libc.so.6的基本常识: libc.s ...

  5. WireShark Flow capture analysis

    Wiresharkl流量分析 1.图示是对WiFi数据接口的80号端口进行数据捕获,设置混杂模式 过滤表达式设置: IP地址设置过滤   ip.src==191.168.1.102    ip.dst ...

  6. Nginx详解三:Nginx基础篇之yum安装

    Nginx快速搭建 Mainline version ----开发版:具有最新功能的版本,用于测试.研究.学习,不用于企业生成环境 Stable version----稳定版:官方认可,且通过测试的 ...

  7. linux-umount挂载点无法卸载:device is busy(解决)

    umount不了的原因一般是由于有程序有用户在占用 解决方法: 1.      首先查找谁在占用:#fuser /mnt/nfs 得到进程号. 2.      查找进程:#ps –ef|grep 进程 ...

  8. 添加依赖:https://mvnrepository.com/

    该网站搜索

  9. Django Web开发基础环境配置流程

    创建虚拟环境 mkvirtualenv django_py3_1.11 -p python3 注意需要联网 安装Django 使用django 1.11.11版本,注意需要联网 pip install ...

  10. 字典树HihoCoder - 1014

    输入的第一行为一个正整数n,表示词典的大小,其后n行,每一行一个单词(不保证是英文单词,也有可能是火星文单词哦),单词由不超过10个的小写英文字母组成,可能存在相同的单词,此时应将其视作不同的单词.接 ...