网站建设需,制作网站的软件主要有,护肤品网站建站模板,做网站怎么赚钱 做网站怎么赚钱在使用Spring框架的时候我们如果使用这种方式来存储bean对象的话未免有点太麻烦了 bean idxxx classxxx /bean
为了简化存储Bean对象的操作#xff0c;我们可以使用五大类注解来进行存储Bean对象
我们首先要在配置文件配置扫描路径…在使用Spring框架的时候我们如果使用这种方式来存储bean对象的话未免有点太麻烦了 bean idxxx classxxx /bean
为了简化存储Bean对象的操作我们可以使用五大类注解来进行存储Bean对象
我们首先要在配置文件配置扫描路径需要主要的是只有在扫描路径里面的类添加了五大类注解才可以被添加到Spring容器中否则即使添加了五大类注解也能被添加到Spring容器中
content:component-scan base-packagexxxx /content:component-scan
在这里我举了一个例子大家看一看 这里我没有把Controller这个包配置到扫描路径下所以即使我添加了五大类注解也不会被添加到Spring容器中
那么这么做的目的究竟是为什么呢答案很简单是为了保证Spring框架的性能
假如不需要扫描路径直接将添加五大类注解那么Spring一定会扫描所有的包底下所有的类那么这么做一定会消耗大量的资源和时间使得Spring的性能变差。假如我们使用了扫描路径那么Spring就只需要扫描该包底下的所有类查看哪些类添加了五大类注解并将它们添加到Spring容器中。 如果使用了五大类注解将Bean对象存储到Spring容器中那么应该怎样取出来呢
我们知道如果将Bean存储到Spring容器中那么就一定需要给Bean取一个id方便标识
我们查询源码可以发现那么使用五大类注解后id的命名规则就有两种了 public static String decapitalize(String name) {if (name null || name.length() 0) {return name;}if (name.length() 1 Character.isUpperCase(name.charAt(1)) Character.isUpperCase(name.charAt(0))){return name;}char chars[] name.toCharArray();chars[0] Character.toLowerCase(chars[0]);return new String(chars);} 如果该类的名字第一个字母是大写第二个字母是小写的话那么存储到Spring的Bean的id与该类的名字一致的同时将第一个字母修改成小写 类名StudentController ----- Bean的idstudentController 如果该类的名字第一个字母是大写第二个字母是大写的话那么存储到Spring的Bean的id与该类的名字一致 类名SController ----- Bean的idSController 当我们看看五大类注解的源码的时候我们会发现其实除了Component以外的四个类都是实现了Component注解的换言之其实他们五大类注解都只是一个注解
那么为什么还需要分五大类注解呢想要知道这个问题的答案我们首先需要知道一个概念叫做Spring分层架构 Controller层相当于是一个“保安”与前端打交道用来检验前端传过来的数据是否符合规范
Service层相当于是“服务中心”将服务进行调度告诉各个数据应该“去哪”
DAO层则是直接与数据库打交道的操纵数据库对数据进行持久化存储
Controller表示逻辑业务层
Service表示服务层
Reposity表示持久层
Configuration表示配置层
Compoent表示工具层
所以五大类注解的作用就是为了让程序更好的区分各个类的作用是什么