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

Posted qq12538552

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java程序员常用的@Component@Repository@Controller@Service系列案例demo3相关的知识,希望对你有一定的参考价值。

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:

以上是关于Java程序员常用的@Component@Repository@Controller@Service系列案例demo3的主要内容,如果未能解决你的问题,请参考以下文章

MySQL常用指令,java,php程序员,数据库工程师必备。程序员小冰常用资料整理

Java常用调试技巧(转)

好程序员Java教程分享Java之包装类与常用类

盘点Java程序员常用的12款框架,看看你是否落伍了?

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

java的API中都有哪些常用的包?