zoukankan      html  css  js  c++  java
  • java 项目 文件关系 扫描 注释注入

    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缺点,如果遇到相同多对象,

     

  • 相关阅读:
    webservice 测试窗体只能用于来自本地计算机的请求
    未能加载文件或程序集system.web.extensions解决方法
    VS2010中水晶报表应用及实例
    存储过程
    Windows下wamp的配置问题(php初学者必看!!)
    IIS附加进程在Visual Studio 2010 中进行调试(高级)
    求职之(1)各公司待遇~~可能有点老了
    编译原理之(2)C++词法文件,语法文件
    STL笔记(4)关于erase,remove
    STL笔记(6)标准库:标准库中的排序算法
  • 原文地址:https://www.cnblogs.com/dianzan/p/11068820.html
Copyright © 2011-2022 走看看