做百度推广的网站,个人网站命名,如何去建立和设计一个公司网站,国际新闻最新消息今天简短一#xff0c;Spring是什么及常用注解
先说什么是spring#xff0c;在前面的博客中已经知道了#xff0c;spring是一个开源框架#xff0c;为了让我们开发更加简单#xff0c;那关于ioc呢#xff0c;一句话概况一下#xff1a;Spring就是包含了众多工具方法的Ioc容器
…一Spring是什么及常用注解
先说什么是spring在前面的博客中已经知道了spring是一个开源框架为了让我们开发更加简单那关于ioc呢一句话概况一下Spring就是包含了众多工具方法的Ioc容器
注解
共有两类大注解
类注解Controller、Service、Repository、Component、Configuration.
⽅法注解Bean.
Controller:控制器存储控制层,接收请求,对请求进⾏处理,并进⾏响应.
Service服务存储也就是用来存储业务层组件。
Repository仓库存储也称为持久层.负责数据访问操作。
Component组件存储使其能够被Ioc自动扫描识别并管理。
Configuration配置存储处理项⽬中的⼀些配置信息。
Bean方法注解Bean注解的方法会产生一个Bean对象该对象由Spring管理并放到IoC容器中。
Autowired注入依赖在Controller层和Service层注⼊运⾏时依赖的对象
二 什么是Ioc
也就是比如在平常创建对象需要一个一个new而使用了它之后就不需要了交给容器集中处理一键完成方便省事。
IocInversion of Control (控制反转)也就是将创建对象的控制权反转到Spring上。
IOC的优点
1.资源的集中管理我们需要使用的时候直接在容器里取就可以了。
2.降低耦合度不会牵一发而动全身降低了依赖程度。
也就是我们将一些自己需要创建的东西外包出去然后使他们来负责这样即使出了问题让他们修改就行了我们也不用整体改了。
三什么是DI
从上述可以看出IOC在处理的时候其实也就是一个依赖注入的容器而依赖注入就是DI。
DI依赖注入也就是在容器运行期间动态的为应用程序提供运行时所依赖的资源。
DI也就是Ioc的一种实现也就比如今天想出去下馆子那么下馆子就是IOC而去吃川菜和粤菜就是DI。
三依赖注入
spring依赖注入主要分为三种实现方式属性注入构造方法注入setter注入
3.1属性注入
应用层代码
Service
public class UserService {public void doService(){System.out.println(service ...);}
}
控制层代码
Controller
public class HelloConteoller {Autowiredprivate UserService userService;public void sayHi(){userService.doService();System.out.println(HelloConreoller);}
3.2构造方法注入
构造方法是在类的构造方法中实现注入
控制层代码
Controller
public class HelloConteoller {//构造方法注入private UserComponent userComponent;public HelloConteoller(UserService userService){this.userService userService;}Autowiredpublic HelloConteoller(UserService userService, UserComponent userComponent){this.userService userService;this.userComponent userComponent;}
}
3.3setter方法注入
在设置setter方法的时候要加Autowired注解。
控制层代码
Controller
public class HelloConteoller {// setter方法注入Autowiredpublic void setUserService(UserService userService){this.userService userService;}public void sayHi(){userService.doService();System.out.println(HelloConreoller);}
}
3.4三种方法优缺点
1.属性注入
优简洁方便
缺只能使用IOC容器其他不行不能注入一个Final修饰的属性。
2.构造方法注入
优可以注入Final修饰的属性注入的对象不会被修改任何框架都可以支持。
缺注入多个对象要一个一个打代码。
3.setter方法注入
优在类实例之后还能对该对象进行配置或者注入。
缺也不能注入Final修饰的属性setter方法被多次调用就会有被修改的风险。