{{format('0')}} {{format('300')}} {{format('2587')}}

【Spring】核心概念:注解开发 [ 编程杂谈 ]

大数据男孩 文章 正文

想做一个技术博客,奈何实力不够
分享

明妃

{{nature("2022-09-12 18:41:00")}}更新

注解开发

配置文件的作用降低,只需要完成扫描器的定义就行,类上添加一个注解,就表示该类是容器管理的 Bean

类添加注解

import cn.bigdataboy.service.NameService;
import org.springframework.stereotype.Component;

@Component("nameService") // 参数就是 id
public class NameServiceImpl implements NameService {

    public void save() {
        System.out.println("service save ...");
    }
}

类注解的官方推荐使用

import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Component;

@Controller  // 表现层
@Service   // 业务层
@Repository   // 数据层
@Component("nameService")  // 其他层

配置添加 扫描器

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       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
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
">

    <!-- 定义扫描器 上面的命名空间要完整,idea自动的生成的不完整-->
    <context:component-scan base-package="cn.bigdataboy"/>
</beans>

mark

纯注解开发

不再需要配置文件,所以也很容易想到,配置文件转变成配置类,同时也就能想到,在初始化容器时,传入的也就不是配置文件,而是配置类了

配置类格式

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration  // 表示配置类
@ComponentScan({"cn.bigdataboy.dao","cn.bigdataboy.service"}) // 扫描器定义多个路径,可以通配,建议准确一点,毕竟有些类不建议 Bean 化
public class SpringConfig {
}

使用

import cn.bigdataboy.config.SpringConfig;
import cn.bigdataboy.dao.NameDao;
import cn.bigdataboy.service.NameService;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class AppForAnnotation {
    public static void main(String[] args) {
        // 加载配置类
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        // 从容器获取对象
        NameService nameService = (NameService) context.getBean("nameService");
        NameDao nameDao = context.getBean("nameDao", NameDao.class);
        System.out.println(nameService);
        System.out.println(nameDao);
    }
}

mark

案例代码:https://pan.bigdataboy.cn/s/y4jie

评论 0
0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}
TOP 2
Spark 2.0 单机模式与集群模式 安装

{{nature('2020-01-02 16:47:07')}} {{format('12641')}}人已阅读

TOP 3
Office 2016 Pro Plus 激活

{{nature('2019-12-11 20:43:10')}} {{format('9527')}}人已阅读

TOP 4
Linux上 MySQL 开启远程登陆的两种方法

{{nature('2019-12-26 17:20:52')}} {{format('7573')}}人已阅读

TOP 5
Linux 安装 MySQL 5.7

{{nature('2019-12-26 16:03:55')}} {{format('5017')}}人已阅读

目录

标签云

Java Spring 注解

一言

# {{hitokoto.data.from || '来自'}} #
{{hitokoto.data.hitokoto || '内容'}}
作者:{{hitokoto.data.from_who || '作者'}}
自定义UI
配色方案

侧边栏