SSM之spring框架

一、概述

  spring框架在我看来我们只要做三件事就好了。就是IOC(Inversion of Control 控制反转)、DI(Dependency Injection 依赖注入)、AOP(Aspect Oriented Programming 面向切面编程)。

二、详细介绍

1、IOC(Inversion of Control 控制反转)
  控制反转并不是什么技术问题,而是一种思想。在传统Java开发中,对象都是开发人员自己维护,还有依赖关系也要开发人员自己注入。现在用了spring之后,对象的创建以及注入都交给了spring去管理。控制权从开发人员变成了spring,这就是控制反转。

2、DI(Dependency Injection 依赖注入)
  我们将一些类交给spring容器去管理,当我们需要这个类的时候就不需要自己定义,直接向spring容器所需就行。当spring容器知道我们的需求后就会从它管理的组件里寻找,然后直接给你所需要的组件。

3、spring配置(DI)
3.1、元素属性
bean元素:该元素描述需要spring容器管理的对象
name属性:给被管理的对象起名字,获得对象时使用getBean(“name值”)方法
class属性:被管理对象的全限定名
id属性:与name属性一样,名称不可重复,不能使用特殊字符

3.2、使用配置文件配置

<bean id="servlet1" class="net.seehope.spring.mock.MockServlet1"
  scope="singleton" init-method="init" destroy-method="destory">
  <!-- DI依赖注入 给零件配置 -->
  <!-- 8大基本类型以及String,都是通过value装配 -->
  <property name="a" value="1"></property>
  <property name="b" value="hello di"></property>
  <property name="lines">
   <array>
    <value>1</value>
    <value>2</value>
    <value>3</value>
   </array>
  </property>
  <!-- 引用类型装配的时候,必须也要是工厂的零件之一 -->
  <property name="mockServlet2" ref="servlet2"></property>
  <property name="maps">
   <map>
    <entry key="1">
     <value>1</value>
    </entry>
    <entry key="hello">
     <value>di</value>
    </entry>
   </map>
  </property>
  <property name="mockServlet2s">
   <list>
    <ref bean="servlet2" />
    <ref bean="servlet2" />
    <ref bean="servlet2" />
    <ref bean="servlet2" />
    <ref bean="servlet2" />
    <ref bean="servlet2" />
   </list>
  </property>
 </bean>

3.3、用注解配置
IOC{
@Controller 控制层
@Service 业务层
@Repository dao层
@Configuration 配置层
@Component 其他默认用当前类名首字母小写,其他不变作为bean的名字
}
DI{
@Autowired 自动写入
1.先判断容器中是否有UserService的实现,如果只有一个,那么直接注入
2.要是不止一个就用@Qualifier("")方法区分具体的UserService实现
}

@Controller("1")
public class UserController {
 @Autowired
 @Qualifier("userServiceImpl")
 private UserService userService;
 
 public void insertUser() {
  User user = new User("bs","123456");
  userService.insertUser(user);
 }
 
 
 @ResponseBody
 @RequestMapping("/user/all")
 public List<User> queryAllUser() {
  return userService.getAllUser();
 }
}

4、AOP(Aspect Oriented Programming 面向切面编程)
4.1、什么是切面、连接点、切点
aspect(切面): 存放了所有切面方法(通知)的类 处理方法。
JoinPoint(连接点):spring只支持方法连接点,被选中的存在bean中的方法一般是service层的方法,连接点就是目标对象中所有可以增强的方法,就是spring允许你是通知的地方。
Pointcut(切点):连接点的集合,目标对象中已经被增强的方法。
Target(目标对象):被代理对象,被通知的对象,被增强的类对象。
Proxy(代理):将通知织入到目标对象之后形成的代理对象。

关于AOP的具体配置请看我的另一篇博客AOP的配置.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值