Java程序员常用的@Component、@Repository、@Controller、@Serv

Java程序员常用的@Component、@Repository、@Controller、@Service系列【案例demo3】

很多程序员通过在类上使用@Repository、@Component、@Service 和 @Constroller 注解,Spring会自动创建相应的 BeanDefinition 对象,并注册到 ApplicationContext 中。这些类就成了 Spring受管组件。这三个注解除了作用于不同软件层次的类,其使用方式与@Repository 是完全相同的。

处理类:org.springframework.context.annotation.ScannedGenericBeanDefinition

[if !supportLists]· [endif]项目包结构

F:.

├─java

│ └─com

│ └─example

│ └─demo3

│ │ Demo3Application.java

│ │

│ ├─controll

│ │ StuController.java

│ │

│ ├─dao

│ │ StuDao.java

│ │ StuDaoImp.java

│ │

│ ├─entity

│ │ Stu.java

│ │

│ └─server

│ StuService.java

│ StuServiceImp.java

└─resources

    application.properties

    project.text

[if !supportLists]· [endif]控制器角色StuController

package com.example.demo3.controll;

import org.springframework.stereotype.Controller;

@Controller

public class StuController {

}

[if !supportLists]· [endif]数据角色StuDao、StuDaoImp

package com.example.demo3.dao;

public interface StuDao {

}

package com.example.demo3.dao;

import org.springframework.stereotype.Repository;

@Repository

public class StuDaoImp implements StuDao{

}

[if !supportLists]· [endif]服务角色StuService、StuServiceImp

package com.example.demo3.server;

public interface StuService {

}

package com.example.demo3.server;

import org.springframework.stereotype.Service;

@Service

public class StuServiceImp implements StuService {

}

[if !supportLists]· [endif]其它组件角色Stu

package com.example.demo3.entity;

import org.springframework.stereotype.Component;

@Component

public class Stu {

String name;

public Stu(String name) {

    this.name = name;

}

public Stu() {

}

public String getName() {

    return name;

}

public void setName(String name) {

    this.name = name;

}

@Override

public String toString() {

    return "Stu{" +

            "name=‘" + name + ‘\‘‘ +

            ‘}‘;

}

}

[if !supportLists]· [endif]Demo3Application(启动程序)

package com.example.demo3;

import com.example.demo3.controll.StuController;

import com.example.demo3.dao.StuDao;

import com.example.demo3.entity.Stu;

import com.example.demo3.server.StuService;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication

public class Demo3Application {

public static void main(String[] args) {

    ConfigurableApplicationContext context = SpringApplication.run(Demo3Application.class, args);

    //@Component注册的组件,名称默认都是类名的首字母小写

    //纯属于注解方式注册组件

    //之所以能力扫描到这些包,因为注解@AutoConfigurationPackage的作用(但必须满足所有组件都在启动类所在包的平级或子集)

    StuController stuController = context.getBean("stuController", StuController.class);

    Stu stu = context.getBean("stu", Stu.class);

    StuDao stuDaoImp = context.getBean("stuDaoImp", StuDao.class);

    StuService stuServiceImp = context.getBean("stuServiceImp", StuService.class);

    //打印都有地址

    System.out.println(stuController);

    System.out.println(stu);

    System.out.println(stuDaoImp);

    System.out.println(stuServiceImp);

    context.close();

}

}

AnnotationConfigApplicationContext与ConfigurableApplicationContext的关系

总结:

1.上下文基本架构关系

2.ConfigurableApplicationContext:

3.ClassPathXmlApplicationContext:

4.AnnotationConfigApplicationContext:

原文地址:https://blog.51cto.com/14672031/2474002

时间: 2024-08-09 14:36:05

Java程序员常用的@Component、@Repository、@Controller、@Serv的相关文章

Java程序员常用工具类库

有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework......等等,你会发现自己总是在学习,但总是有自己不知道的东西. 当你看到代码工程的lib下各种各样的jar文件的时候,你是否能全部知道他们都是干什么用的,为什么要导入到工程下吗? 从Google你能搜索到大量的关于Struts,Spring,Hibernate,iBatis等比较大的框架的资料

Java程序员常用英语词汇

干程序员这行实在是离不开英语,干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难.这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这些技术时往往受到语言障碍的制约,严重影响到对新技术的理解和消化.首先编程本身就依赖于英语,虽然现在技术的发展,可以使得某些开发工具在变量名和字段名中支持中文,但还未发现能够完全使用中文的编程语句.     这并不代表我们英语差,就不能编程了,下面提供一点入门级的程序员常用英语,以此为开始,迈出我们学习英语的第一步,努力学习

JAVA程序员常用软件类库下载地址整理

IT行业是个发展更新特别快的领域,每个程序员在职业生涯中都会经历各类技术和工具的更新迭代. 俗话说:工欲善其事,必先利其器.本着独乐乐不如众乐乐的精神(其实是自己健忘)本人把经常要用到的软件工具官方下载地址都集锦到一起,方便大家一起学习进步. 学习参考网站类: 菜鸟教程:http://www.runoob.com/ BootCDN开源项目CDN服务:http://www.bootcdn.cn/ W3school:http://www.w3school.com.cn/index.html 慕课网:

java程序员常用的linux命令

作为一个java后端开发者,在日常工作中肯定会有和linux打交道的时候.下面我整理了一些开发中可能需要用到的一些命令(写这篇随笔前,我也没有什么操作经验,主要防止自己忘记这些操作命令,以后有用到新的命令再修改). 以下的操作是通过SecureCRT对服务器进行远程连接,使用WinSCP来进行文件上传. 一.用户相关的一些命令 1.新建用户  adduser username  (只有root有权限新增用户) 2.修改用户密码  passwd username 3.切换用户 su usernam

java程序员常用的八个工具

以下这8个工具,从代码构建到错误挤压,覆盖Java开发的全域.学习这些工具可以帮助你改善代码质量,成为一个更高效的Java开发人员. 1.Eclipse 尽管IntelliJ IDEA.NetBeans和一些其他的IDE正在日益普及,但是有调查表明,Eclipse仍然是几乎半数Java开发人员首选的开发环境. Eclipse是IDE领域的瑞士军刀,有着大量定制的接口和无数的插件.它无处不在,后面本文将推荐的其他所有工具都提供Eclipse插件. Eclipse的工作流程可分为三个方面:工作台,工

【转】Java程序员常用工具类库 - 目录

原文地址:http://rensanning.iteye.com/blog/1553076 有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework......等等,你会发现自己总是在学习,但总是有自己不知道的东西. 当你看到代码工程的lib下各种各样的jar文件的时候,你是否能全部知道他们都是干什么用的,为什么要导入到工程下吗? 从Google你能搜索

Java程序员常用工具集

一.编码工具 1.IDE:Eclipse或者IDEA,熟悉尽可能多的快捷键,<Eclipse常见快捷键列表>2.插件: (1) Findbugs,在release之前进行一次静态代码检查是必须的(2) Clover,关心你的单元测试覆盖率(3) Checkstyle 代码风格检查 3.构建和部署工具:ant或者maven,现在主流都是maven了吧,使用nexus搭建maven私服,再加上持续集成jenkins.代码质量不用愁. 4.版本管理工具: svn或者git 5.diff和patch

java程序员常用的工具名称--知道中文意思吗

在学习java的时候经常会碰到一些单词,但是一般的时候也不是很在意这个单词的意思,而是能够了解到这个工具或者框架可以做什么就可以了.偶尔总结了一下还蛮有意思的.如下, 如果有遗漏,各位可以帮忙补充下. ·        maven   ['mevn]   n. 内行,专家 ·        nexus  ['neks?s] n. 关系:连结,连系 ·        apache   [?'p??; ?p??]   n. 阿帕切族(美洲印第安部族) ·        tomcat    ['t?m

JAVA程序员常用软件整理下载

********为了大家学习方便,特意整理软件下载如下:*************Java类软件:-------------------------------JDK7.0:http://pan.baidu.com/s/1jGFYvAYMyclipse8.5破解版:http://pan.baidu.com/s/1sjz5cNrTomcat6.0:http://pan.baidu.com/s/1eQeSHZs安卓开发工具包:http://pan.baidu.com/s/1eQIivYy所有jar包