大庆网站开发,南昌哪里做网站好,文化网站策划,自助网址搭建源码五大类注解为Controller#xff0c;Service#xff0c;Repository#xff0c;Configuration#xff0c;Component,方法注解为Bean。 需要注意的是#xff1a;Bean注解必须要在类注解修饰的类内才能正常使用。
一、与配置文件的关系
在spring原生项目中 如果你使用的spri…五大类注解为ControllerServiceRepositoryConfigurationComponent,方法注解为Bean。 需要注意的是Bean注解必须要在类注解修饰的类内才能正常使用。
一、与配置文件的关系
在spring原生项目中 如果你使用的spring原生项目你就需要自己配置spring的扫描目录使用类注解和方法注解的类只有在配置的文件路径下才会被扫描到spring容器中。配置格式为
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contenthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://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.xsdcontent:component-scan base-packagecom.java.demo/content:component-scan
/beans在spring Boot项目中 不需要自己配置了在spring Boot项目中默认的扫描路径java文件夹的com.example.demo路径下。也可以使用ComponentScan指定要扫描的包路径如下
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;SpringBootApplication
ComponentScan(basePackages com.example) // 指定要扫描的基础包路径
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}
二、直接装入spring容器的Bean的id
默认情况 类注解 默认情况下五大类注解导入容器中的Bean对象的id是类名的首字母由大写改为小写。这个名称是在源码中由一个方法决定的名称的变化依据为如果类名首字母为大写且类名第二个字母不为大写则Bean的名称就是类名的首字母小写。 方法注解 方法注解添加的Bean的默认id为方法的名称。
但是除了默认名称之外在使用注解的时候还可以自己设置Bean的名称。
设置别名 五大类注解设置别名 五大类注解在使用时可以通过设置Value属性的方法来设置别名设置别名之后默认名称就不可用了。下面是Controller注解设置别名例子其他类注解也是这样设置 Controller(valueUser)
public class User {PostConstructpublic void test(){System.out.println(User的前置方法);}
}方法注解设置别名 方法注解设置别名可以设置name和value两个参数并且方法注解的别名可以设置多个也就是参数可以设置成String数组。设置了别名后默认名称也不可用了。 Bean(name{users,users2})
public User getUser(){return new User();
}三、五大类注解之间的关系
查看ControllerServiceRepositoryConfiguration的源码可以发现这四个类注解都是继承自Component注解。这五大类注解的作用都是将修饰的类装入spring容器中。那么为什么要有五大类注解呢 主要是五大类注解装入的Bean对象的功能不同程序员设置不同的注解去装入以此来标记不同功能的Bean对象。 Controller层表示业务逻辑层Http请求首先会进入到这一层也可以说这一层装入的Bean对象应该用来处理业务逻辑。 Service层服务层 Repository层持久层这一层的Bean对象应该是用来操作数据库的Bean对象。 Configuration层配置层这一层的Bean对象应该用来配置一些属性比如之后的拦截器对象就可以作为这一层的Bean对象。通过注入到拦截器列表中实现对请求的拦截检查。 Component层组件层不符合上面四个作用的Bean对象就可以放在这一层。