1. @Comment注解

我们在zull的token拦截部分用到了一个@Comment注解,这里展开说一下。

spring2.5为我们引入了组件自动扫描机制,它可以在classPath路径底下寻找标注了@Component、@Service、@RestController、@Mapper注解的类,并把这些类纳入进spring容器中管理。它的作用和在xml文件中使用bean节点配置组件是一样的。

@Service用于标注业务层组件、

@RestController用于标注控制层组件

@Mapper用于标注数据访问组件,即DAO组件。

而@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

2. dependencies VS dependencyManagement

我们可以看到父项目中的pom文件的依赖分成了两个部分,如下:

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
            <version>1.2.5.RELEASE</version>
        </dependency>
    </dependencies>
   
    <dependencyManagement>
        <dependencies>
      		。。。
      		。。。
            <!--jwt-->
            <dependency>
                <groupId>com.auth0</groupId>
                <artifactId>java-jwt</artifactId>
                <version>3.8.3</version>
            </dependency>
            
        </dependencies>
    </dependencyManagement>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

其中区别在于放在里面的依赖,会自动加到每个微服务里面,且保证版本统一。

而 里面的依赖,不会自动加到每个微服务里面,如果微服务需要加入依赖,还是需要将依赖的代码写入自己的pom文件中,只是不用再写,系统会默认版本和父pom文件中的依赖版本一致。

通过父pom文件,就可以保证整个项目的依赖版本统一且不会冲突,将来升版本的时候,可以直接修改父pom文件。

3. 依赖的版本控制

如上面代码所示,我们将各个依赖的版本号放在放在了相应依赖中。若有需要,可以将版本号统一起来。

<properties>
    <springloaded.version>1.2.5.RELEASE</springloaded.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>springloaded</artifactId>
        <version>${springloaded.version}</version>
    </dependency>
</dependencies>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.