Spring入门

一.Spring的介绍

1.什么是Spring?

Spring是轻量级的javaEE应用开源框架

2.Spring的好处

ioc aop 粘合剂

二.IOC

1.耦合

耦合是什么? 对象之间的依赖关系(service依赖dao层),耦合度越高维护成本越大

2.IOC

IOC(Inverse of Control) 控制反转:正传是自己new对象,反转是有工厂创建对象

3.工厂模式下的IOC解耦合

1.把service和dao配置到beans.properties

2.读取beans.properties

3.通过反射创建对象,并装到容器中

4.使用时,直接从容器中获取

        工厂:①通过反射创建对象,②把对象装容器

4.Spring的IOC解耦合

1.pom.xml spring-context

2.applicationContext.xml

        <bean id="userDao" class="com.by.dao.UserDaoImpl"></bean>
        <bean id="userService" class="com.by.service.UserServiceImpl"></bean>

5.DI 

1.DI是什么?

DI(Dependency Injection) 依赖注入:把依赖对象(userDao)从容器中(map)拿出来赋值给调用者(UserService)

2.DI

①构造方法注入

a.提供构造方法注入

        public UserServiceImpl(UserDao userDao){

                        this.userDao = userDao;

                }

b.注入

        <constructor-arg name="userDao" ref="userDao"></constructor-arg>

②.set方法注入

a.提供set方法

           public void setUserDao(UserDao userDao) {
                            this.userDao = userDao;
                    }

b.注入

<property name="userDao" ref="userDao"></property>

③.自动注入

a.提供set方法

          public void setUserDao(UserDao userDao) {
                            this.userDao = userDao;
                    }

b.注入

<bean id="" class="" autowire="byType"/>

6.BeanFactory和ApplicationContext区别

BeanFactory :顶级接口 getBean时才创建对象

AppliactionContext:子接口 上来就创建对象

7.spring bean的作用域范围(bean放哪了)

singleton:单例,IOC容器

prototype:多例,每次都创建

request:request域

response:Respons域

application:ServiceContext域

单例和多例的使用场景?

单例:service、dao、SqlSessionFactory

多例:Connection、SqlSession

8.spring bean的生命周期

单例:[创建容器]---->构造方法(实例化)--->set方法注入---->init方法(初始化)--->[容器关闭]--->destroy方法(销毁bean)

多例:[getBean]--->构造方法(实例化)-->set方法注入---> init方法(初始化)-->[JVM垃圾回收]-->destroy方法(销毁bean)

三.spring基于注解的IOC

1.常用注解

①.IOC注解

@Controller:web层

@Service:service层

@Repository:dao层

@Component:三层架构之外

②.DI注解

@Resource(name=""):按名称注入,按map的key值获取对象

@autowired:按类型注入

@Value:注入基本类型

2.配置步骤

①.applicationContext.xml

<context:component-scan base-package="com.by"/>

②.IOC

@Repository

        public class UserDaoImpl implements UserDao{

            }

@Service

        public class UserServiceImpl implements UserService{

            }
③.DI

        public class UserServiceImpl implements UserService{
                @Autowired
                private UserDao userDao;
            }

四.spring的AOP

1.为什么要使用AOP?

2.什么事AOP

AOP(Aspect Oriented Programming)面向切面编程:把程序中重复的代码抽取出来,使用动态代理技术来执行

3.代理模式

4.aop的核心概念

切点(pointcut):要增强的方法,eg:add() update()

增强/通知(advice):要搞得事情,eg:日志,控制事务

前置通知:aop:before

后置通知:aop:after-returning

最终通知:aop:after

异常通知:aop:after-throwing

环绕通知:aop:arount

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值