小白开发入门——Spring核心知识

Spring核心功能介绍

SPring核心包括:
控制反转IOC
依赖注入DI
面向切面AOP

IOC
把创建对象的权利交给框架做,实现可插拔的接口编程。降低耦合,易维护。
比如,你去某地旅游,不需要自己订酒店,只需要联系去哪儿或者携程,他们会帮你订购一个舒适便宜的酒店,平台的这个行为可以称之为控制反转。
DI
组件之间依赖关系由容器在运行期决定。由容器动态地将某个依赖关系注入到组件中。目的为提升组件重用的频率,为系统搭建灵活、可扩展的平台。通过过依赖注入机制,只需要简单的配置,无需任何代码就可指定目标需要的资源,完成自身的业务逻辑。
IOC
DI是实现IOC的方法和手段。
依赖注入的常见实现方式:
1.setter注入
2.构造方法注入
3.注解注入

1.setter注入
Java代码:

public class UserController {
    // 注入 UserService 对象
    private UserService userService;
    public void setUserService(UserService userService){
        this.userService = userService;
    }
}

XML配置

<bean name="userController" class="com.learning.controller.UserController">  
    <!-- 依赖注入 -->  
    <property name="userService" ref="userService"></property>  
</bean>  
<bean name="userService" class="com.learning.dao.impl.UserServiceImpl"></bean>

Bean标签的常用属性说明:
id:为实例化对象起名称,根据id值可以得到我们配置的实例化对象,id属性的名称原则上可以任意命名,但是能包含任何特殊符号;
class:创建对象所在类的全路径;
name:功能和id属性一样,但是现在一般不用;与di的区别在于:name属性值里可以包含特殊符号,但是id不可以;
scope:一般最常用的有2个值:Singleton:单例模式,整个应用程序,只创建bean的一个实例;Prototype:原型模式,每次注入都会创建一个新的bean实例,Spring默认是单例模式。

2.构造方法注入
Java代码:

public class UserController {
    private UserService userService;
    public UserController(UserService userService){
        this.userService = userService;
    }
}

XML配置:

<bean name="userController" class="com.learning.controller.UserController">  
    <!-- 依赖注入 -->  
    <constructor-arg ref="userService"></constructor-arg>  
</bean>  
<bean name="userService" class="com.learning.dao.impl.UserServiceImpl"></bean>  

3.注解注入

@Controller
public class UserController {
    // 使用注解自动注入
    @Autowired()
    private UserService userService;
    // do something
}
// 创建依赖对象
@Service
public class UserService {
   // do something 
}

创建依赖对象的常见注解:@Component、@Controller、@Service、@Repository。

面向切面编程(AOP)
将系统按照功能分类,每一个类就是一个“切面”,我们再针对不同的切面定制相应的规则,这样的开发模式被称为面向切面编程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值