设为首页 加入收藏

TOP

7、Spring之基于注解管理bean(一)
2023-08-06 07:49:31 】 浏览:79
Tags:Spring 于注解 管理 bean

本质上:所有一切的操作都是Java代码来完成的,XML和注解只是告诉框架中的Java代码如何执行。

7.1、环境搭建

创建名为spring_ioc_annotation的新module,过程参考3.1节

7.1.1、创建spring配置文件

image

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

7.1.2、创建UserDao接口及实现类

image

package org.rain.spring.dao;

/**
 * @author liaojy
 * @date 2023/8/5 - 18:32
 */
public interface UserDao {
}

image

package org.rain.spring.dao.impl;

import org.rain.spring.dao.UserDao;

/**
 * @author liaojy
 * @date 2023/8/5 - 18:33
 */
public class UserDaoImpl implements UserDao {
}

7.1.3、创建UserService接口及实现类

image

package org.rain.spring.service;

/**
 * @author liaojy
 * @date 2023/8/5 - 18:35
 */
public interface UserService {
}

image

package org.rain.spring.service.impl;

import org.rain.spring.service.UserService;

/**
 * @author liaojy
 * @date 2023/8/5 - 18:36
 */
public class UserServiceImpl implements UserService {
}

7.1.4、创建UserController

image

package org.rain.spring.controller;

/**
 * @author liaojy
 * @date 2023/8/5 - 18:38
 */
public class UserController {
}

7.2、注解和扫描

7.2.1、标识组件的常用注解

注解 含义
@Component 将类标识为普通组件
@Controller 将类标识为控制层组件
@Service 将类标识为业务层组件
@Repository 将类标识为持久层组件

@Controller、@Service、@Repository这三个注解只是在@Component注解的基础上起了三个新的名字

从Spring使用IOC容器管理bean组件的角度来看,这四个组件注解没有区别

@Controller、@Service、@Repository这三个注解只是为了让开发人员便于分辨组件的作用

7.2.2、使用组件注解

7.2.2.1、@Controller注解

image

package org.rain.spring.controller;

import org.springframework.stereotype.Controller;

/**
 * @author liaojy
 * @date 2023/8/5 - 18:38
 */
@Controller
public class UserController {
}

7.2.2.2、@Service注解

image

注意:组件注解只能用于实现类,不能用于接口;因为bean的class属性只能是实现类,不能是接口

package org.rain.spring.service.impl;

import org.rain.spring.service.UserService;
import org.springframework.stereotype.Service;

/**
 * @author liaojy
 * @date 2023/8/5 - 18:36
 */
@Service
public class UserServiceImpl implements UserService {
}

7.2.2.3、@Repository注解

image

注意:组件注解只能用于实现类,不能用于接口;因为bean的class属性只能是实现类,不能是接口

package org.rain.spring.dao.impl;

import org.rain.spring.dao.UserDao;
import org.springframework.stereotype.Repository;

/**
 * @author liaojy
 * @date 2023/8/5 - 18:33
 */
@Repository
public class UserDaoImpl implements UserDao {
}

7.2.3、扫描组件注解

image

注意:为了减少扫描的耗时,推荐尽可能精确地指定package

<?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="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <!--
        对指定的package进行扫描,将使用组件注解的类的对象,交给spring的ioc容器来管理
    -->
    <context:component-scan base-package="org.rain.
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇6、Spring之基于xml的自动装配 下一篇反射 p5 反射相关使用和暴破

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目