Python 官方文档:入门教程 => 点击学习
目录为什么要使用springSpring概述Spring容器使用流程1.启动容器2.完成bean的初始化3.注册bean到容器中4.装配bean的属性bean的注册bean属性注入总
Why Spring?
Spring makes programming Java quicker, easier, and safer for everybody. Spring's focus on speed,
simplicity, and productivity has made it the world's most popular Java framework
Spring为简化企业级开发而生,使用Spring开发可以将Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理,这样使得很多复杂的代码在Spring中开发却变得非常的优雅和简洁,有效的降低代码的耦合度,极大的方便项目的后期维护、升级和扩展。
Spring的优良特性
非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的api
控制反转:ioC——Inversion of Control,指的是将对象的创建权交给Spring去创建。使用Spring之前,对象的创建都是由我们自己在代码中new创建。而使用Spring之后。对象的创建都是由给了Spring框架。
依赖注入:DI——Dependency Injection,是指依赖的对象不需要手动调用setXX方法去设置,而是通过配置赋值。
面向切面编程:Aspect Oriented Programming——AOP
容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期
组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。
一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring 自身也提供了表述层的springMVC和持久层的Spring JDBC)
IOC
IOC 是一种设计的思想,使用这种的设计的思想实现的框架就是IOC容器、通过这个容器可以实现对bean的管理、也就是对对象的生命周期的管理、也可以管理对象之间的依赖关系。IOC 是Spring用来实现对象的创建的、也就是将对象的创建交给Spring来实现的、降低了类和类之间的耦合度。
IOC 的 思想依赖于IOC容器的来实现的,IOC的底层就是对象工厂。
Spring提供了两种实现IOC的方法、一种是BeanFactroy来实现的、一种是ApplicationContext来是实现的。
IOC的底层原理:IOC的底层就是使用xml、工厂模式、反射的技术来实现。
DI
实现了IoC思想的容器就是IoC容器,比如:SpringFremework, Guice(Google开源的轻量级DI框架)
AOP
AOP(Aspect-Oriented Programming,面向切面编程)是对传统传统 OOP(Object-Oriented Programming,面向对象编程)的补充,属于一种横向扩展。其将与核心业务无关的代码,如日志记录、性能监控、事务处理等从业务逻辑代码中抽离出来,进行横向排列,从而实现低耦合,提高开发效率。
加载类路径下的beans.xml 文件
通过配置文件完成对bean的初始化
扫描路径下org.example添加四个注解的类
四个注解都可以用来将当前的类注入到bean中去、将类交给spring来托管。
@Component是基础注解,表示一个 JavaBean 可以被注入到 Spring 容器中。
为了更好的表示 WEB 服务中的三层结构,所以就额外的引出了另外的三种注解分别用在三层结构中进行标注:
@Controller 用在表现层,对来自前端的请求进行转发处理与重定向。
@Repository 用在持久层,标注 DAO 类,表示这个类可以对数据库进行数据的读取或者写入。
@Service 用在业务层,用来处理业务逻辑。
引入后三个注解之后,就实现了将处理前端请求、处理业务逻辑、处理数据库读写这三个基本任务进行了解耦,方便程序的编写和项目维护。
也可以使用@Bean注解
当前类被 Spring 扫描到时,可以在方法上使用 @Bean 注解,通过方法返回类型,也可以定义、注册Bean对象,默认使用方法名作为Bean的名称。
@Configuration
在类被Spring扫描到时,使用 @Configuration 注解,可以注册一个配置类到容器中。配置类一般用来
可以使用FactoryBean接口:先定义一个Bean,实现FactoryBean接口,指定泛型为要注册的类,通过getObject方法的返回
可以在属性上使用 @Autowired 注解
也可以使用setter方法上使用 @Autowired 注解
也能使用构造方法注入
使用 @Qualifier(“名称”) 注解、注入指定的bean
@Controller
public class LoginController {
// 第一种注解的方式属性注入
// @Autowired
@Resource
private LoginService loginService;
//第二种的注入的方式使用set方法来实现注入
public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}
//第三中的方法、使用构造函数来实现注入、使用构造函数的方式来实现注入的话、不需要@Autowire注解
public LoginController(LoginService loginService) {
this.loginService = loginService;
}
public void say() {
loginService.say();
}
@Bean
public User user1() {
User user = new User();
user.setName("ni");
;
user.setPassword("wo");
return user;
}
@Bean
public User user2() {
User user = new User();
user.setName("y");
user.setPassword("y");
return user;
}
}
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!
--结束END--
本文标题: 一篇文章带你了解初始Spring
本文链接: https://www.lsjlt.com/news/131701.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0