https://blog.csdn.net/congweijing/article/details/82499627

controller、service、serviceImpl、Mapper、Xml等文件的作用

TbItemMapper.java与TbItemMapper.xml映射关系

ItemService.java是接口, ItemServiceImpl.java是ItemService.java接口的实现类,

@Override是伪代码,表示重写(当然不写也可以),不过也有好处:

1、可以当注释用,方便阅读;
             2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。
                   例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,

因为编译器以为这个方法是你的子类中自己增加的方法。

举例:在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性。
                   @Override
                    public void onCreate(Bundle savedInstanceState)
                    {…….}
                    这种写法是正确的,如果你写成:
                    @Override
                     public void oncreate(Bundle savedInstanceState)
                     {…….}
                     编译器会报如下错误:
                     The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,
                     以确保你正确重写onCreate方法(因为oncreate应该为onCreate)。
                     而如果你不加@Override,则编译器将不会检测出错误,而是会认为你为子类定义了一个新方法:oncreate

SpringMVC常用注解@Controller,@Service,@repository,@Component

@Scope是修改单例或多例的,默认为单利,就是先后创建连个对象是否相等。单例相等,多例每创建一个都是新的

下图 @注释 和 标签  是等价的

controller层使用@controller注解

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法。通俗来说,被Controller标记的类就是一个控制器,这个类中的方法,就是相应的动作。
@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。比如图一中,跳转到登录页面的路径就是localhost:8080/xxx-war/user/toLogin

service采用@service注解

例:@Service("userService")注解是告诉spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫做"userService",这样当Action需要使用UserServiceImpl的的实例时,就可以由Spring创建好的"userService",然后注入给Action。

dao层使用@repository注解

@Repository(value="userDao")注解是告诉Spring,让Spring创建一个名字叫“userDao”的UserDaoImpl实例。
当Service需要使用Spring创建的名字叫“userDao”的UserDaoImpl实例时,就可以使用@Resource(name = "userDao")注解告诉Spring,Spring把创建好的userDao注入给Service即可。

@Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,我们也要清楚,@Autowired是根据类型进行自动装配的。

mapper层使用@Component注解

总结一下

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法。通俗来说,被Controller标记的类就是一个控制器,这个类中的方法,就是相应的动作。
1、@controller 控制器(注入服务)
2、@service 服务(注入dao)
3、@repository dao(实现dao访问)
4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法。通俗来说,被Controller标记的类就是一个控制器,这个类中的方法,就是相应的动作。

@value是给变量赋值注入

@Autowired是给大熟悉赋值注入,比如一个对象,也称自动装配

@Autowired注解的作用是解决对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

例如:

我们编写Spring框架代码的时候,一直循环这样一个规则:所有在Spring中注入的bean都建议定义成私有变量,

并且要配套上get和set方法,那么,通过 @Autowired的使用来消除 set ,get方法。当然方法上加上此注解也是可以的,

@Autowired 将寻找与之匹配的bean来创建(类名)bena.

@Autowired缺点,如果遇到相同多对象,

java 项目 文件关系 扫描 注释注入的更多相关文章

  1. java 项目 文件关系 扫描 注释注入(3)

    @RequestParam和@PathVariable用法小结  https://www.cnblogs.com/helloworld-hyyx/p/5295514.html(copy) @Reque ...

  2. java 项目 文件关系 扫描 注释注入(2)

    https://www.cnblogs.com/daimajun/p/7152970.html(copy) 先提一嘴 @RequestMapping(“url”),这里的 url写的是请求路径的一部分 ...

  3. java 中 “文件” 和 “流” 的简单分析

    java 中 FIle 和 流的简单分析 File类 简单File 常用方法 创建一个File 对象,检验文件是否存在,若不存在就创建,然后对File的类的这部分操作进行演示,如文件的名称.大小等 / ...

  4. [转载]将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,解决办法

    eclipse 代码中文注释乱码 求解决 将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclips ...

  5. java项目中.classpath,.settings,.project,mymetadata文件的作用

    今天犯了一个错误,误修改了本地的.classpath文件,导致项目好多地方报错,之前也没有仔细的研究过项目中的一些生成文件的作用. 今天特此进行记录. 不管我们在eclipse中新建任何的Java项目 ...

  6. 解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法

      建立好一个Maven项目后,如果Java Resources资源文件下没有src/main/java文件夹,并且在手动创建这个文件时提示“已存在文件”. 这说明,在这个项目配置中已经有了src/m ...

  7. Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法

    方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目 ...

  8. java项目和java-web项目中文件和文件夹的含义

    1. java项目 .project:是工程构建配置文件 .classpath:保存的是项目所用的外部引用包的路径 .settings:记录项目配置变化的记录文件夹 src:sourcefolder项 ...

  9. java项目中文件含义

    1. java项目 .project:是工程构建配置文件 .classpath:保存的是项目所用的外部引用包的路径 .settings:记录项目配置变化的记录文件夹 src:sourcefolder项 ...

随机推荐

  1. O011、理解 virbr0

    参考https://www.cnblogs.com/CloudMan6/p/5308071.html   virbr0 是KVM 默认创建的一个Bridge ,其作用是为该宿主机上的虚机提供NAT上网 ...

  2. O002、虚拟化

    参考https://www.cnblogs.com/CloudMan6/p/5233484.html   OpenStack 是云操作系统,要学习 OpenStack,首先需要掌握一些虚拟化和云计算的 ...

  3. 07 Deque的应用案例-回文检查

    - 回文检测:设计程序,检测一个字符串是否为回文. - 回文:回文是一个字符串,读取首尾相同的字符,例如,radar toot madam. - 分析:该问题的解决方案将使用 deque 来存储字符串 ...

  4. 解决postgresql数据库localhost可以连接,ip连接不了的问题

    解决:windows环境下,postgresql数据库,localhost可以连接,ip地址连接不了. 解决办法: 1.打开postgresql安装目录下的配置文件 pg_hba.conf       ...

  5. Reference to ‘xxxxx’ is ambiguous 错误

    1.原因,在当前类重复引入了 类库,比如 pch里面导入了#import "XXX" 此类的.h 又引入 #import <xxx/xxx> 导致 解决方法:删除此类的 ...

  6. FastDFS整合Nginx的模块:fastdfs-nginx-module报错:fdfs_define.h:15:27: 致命错误:common_define.h:没有那个文件或目录

    错误提示: /usr/include/fastdfs/fdfs_define.h:15:27: 致命错误:common_define.h:没有那个文件或目录 [解决办法] 1.编辑fastdfs-ng ...

  7. oracle服务端字符集

    一.oracle服务端字符集 SQL> select userenv('language') from dual ; USERENV('LANGUAGE')------------------- ...

  8. psutil:系统、进程,信息都在我的掌握之中

    获取cpu的逻辑数量 import psutil print(psutil.cpu_count()) # 12 获取CPU的物理核心数 import psutil print(psutil.cpu_c ...

  9. dumpe2fs Linux支持的文件系统

    dumpe2fs  (-bh)装置文件名 选项与参数: -b : 列出保留为坏轨的部分 -h : 仅列出superblock的数据,不会列出其他的区段内容 查看Linux支持的文件系统哪些支持: ls ...

  10. Python with open 使用技巧

    在使用Python处理文件的是,对于文件的处理,都会经过三个步骤:打开文件->操作文件->关闭文件.但在有些时候,我们会忘记把文件关闭,这就无法释放文件的打开句柄.这可能觉得有些麻烦,每次 ...