做外链音乐网站,大型网站开发周期,郑州广告牌制作市场,做网站建设科技公司SpringFramework实战指南(五) 4.3 基于 注解 方式管理 Bean4.3.1 实验一: Bean注解标记和扫描 (IoC)4.3.2 实验二: 组件(Bean)作用域和周期方法注解4.3.3 实验三: Bean属性赋值:引用类型自动装配 (DI)4.3.4 实验四: Bean属性赋值:基本类型属性赋值 (DI)4.3.5 实验五:… SpringFramework实战指南(五) 4.3 基于 注解 方式管理 Bean4.3.1 实验一: Bean注解标记和扫描 (IoC)4.3.2 实验二: 组件(Bean)作用域和周期方法注解4.3.3 实验三: Bean属性赋值:引用类型自动装配 (DI)4.3.4 实验四: Bean属性赋值:基本类型属性赋值 (DI)4.3.5 实验五: 基于注解+XML方式整合三层架构组件 4.3 基于 注解 方式管理 Bean
4.3.1 实验一: Bean注解标记和扫描 (IoC) 注解理解 和 XML 配置文件一样,注解本身并不能执行,注解本身仅仅只是做一个标记,具体的功能是框架检测到注解标记的位置,然后针对这个位置按照注解标记的功能来执行具体操作。 本质上:所有一切的操作都是 Java 代码来完成的,XML 和注解只是告诉框架中的 Java 代码如何执行。 举例:元旦联欢会要布置教室,蓝色的地方贴上元旦快乐四个字,红色的地方贴上拉花,黄色的地方贴上气球。 班长做了所有标记,同学们来完成具体工作。墙上的标记相当于我们在代码中使用的注解,后面同学们做的工作,相当于框架的具体操作。 扫描理解 Spring 为了知道程序员在哪些地方标记了什么注解,就需要通过扫描的方式,来进行检测。然后根据注解进行后续操作。 准备Spring项目和组件 准备项目pom.xml dependencies!--spring context依赖--!--当你引入Spring Context依赖之后,表示将Spring的基础依赖引入了--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion6.0.6/version/dependency!--junit5测试--dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.3.1/version/dependency
/dependencies2. 准备组件类普通组件/*** projectName: com.atguigu.components** description: 普通的组件*/
public class CommonComponent {
} Controller组件/*** projectName: com.atguigu.components** description: controller类型组件*/
public class XxxController {
} Service组件/*** projectName: com.atguigu.components** description: service类型组件*/
public class XxxService {
} Dao组件/*** projectName: com.atguigu.components** description: dao类型组件*/
public class XxxDao {
}
组件添加标记注解 组件标记注解和区别 Spring 提供了以下多个注解,这些注解可以直接标注在 Java 类上,将它们定义成 Spring Bean。 注解说明@Component该注解用于描述 Spring 中的 Bean,它是一个泛化的概念,仅仅表示容器中的一个组件(Bean),并且可以作用在应用的任何层次,例如 Service 层、Dao 层等。 使用时只需将该注解标注在相应类上即可。@Repository该注解用于将数据访问层(Dao 层)的类标识为 Spring 中的 Bean,其功能与 @Component 相同。@Service该注解通常作用在业务层(Service 层),用于将业务层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。@Controller该注解通常作用在控制层(如SpringMVC 的 Controller),用于将控制层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。通过查看源码我们得知,@Controller、@Service、@Repository这三个注解只是在@Component注解的基础上起了三个新的名字。对于Spring使用IOC容器管理这些组件来说没有区别,也就是语法层面没有区别。所以@Controller、@Service、@Repository这三个注解只是给开发人员看的,让我们能够便于分辨组件的作用。注意:虽然它们本质上一样,但是为了代码的可读性、程序结构严谨!我们肯定不能随便胡乱标记。2. 使用注解标记普通组件/*** projectName: com.atguigu.components** description: 普通的组件*/
@Component
public class CommonComponent {
} Controller组件/*** projectName: com.atguigu.components** description: controller类型组件*/
@Controller
public class XxxController {
} Service组件/*** projectName: com.atguigu.components** description: service类型组件*/
@Service
public class XxxService {
} Dao组件/*** projectName: com.atguigu.components** description: dao类型组件*/
@Repository
public class XxxDao {
} 配置文件确定扫描范围 情况1:基本扫描配置 ?xml version="1.0" encoding="UTF-8"?
beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="