<dependencies></dependencies>  此标签是包含多个项目依赖的<dependency></dependency>

dependency 标签:

<dependency></dependency> 内部通过groupid ,artifactId,version确定唯一的依赖,有人称这三个为坐标
groupId:组织的唯一标识
artifactId:项目的唯一标识
version:项目的版本
例如:
<dependency>
     <groupId>redis.clients</groupId>
     <artifactId>jedis</artifactId>
     <version>2.9.0</version>
 </dependency>变量的定义<properties></properties> 可以定义变量,并在dependency中引用:
定义:
<properties>
    <springfox.version>2.4.0</springfox.version>
</properties>

 

引用是,${中间是标签的内容}

<dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-swagger2</artifactId>
     <version>${springfox.version}</version>
 </dependency>编译配置
<build>
     <plugins>
         <!-- sonar单元测试jia包 -->
         <plugin>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>cobertura-maven-plugin</artifactId>
             <version>2.7</version>
             <configuration>
                 <formats>
                     <format>xml</format>
                 </formats>
             </configuration>
         </plugin>
     </plugins>
 </build>定义;
<profile>
    <id>development</id>
    <properties>
        <project.profile>development</project.profile>
    </properties>
</profile>
<profile>
    <id>production</id>
    <properties>
        <project.profile>product</project.profile>
    </properties>
</profile>
<profile>
    <id>test</id>
    <properties>
        <project.profile>test</project.profile>
    </properties>
</profile>

 

打包时指定配置文件:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0.0</version>
    <executions>
        <execution>
            <phase>initialize</phase>
            <goals>
                <goal>read-project-properties</goal>
            </goals>
            <configuration>
                <quiet>true</quiet>
                <files>
                    <file>${user.dir}/config/${project.profile}.properties</file>
                </files>
            </configuration>
        </execution>
    </executions>
</plugin>

创建多模块maven项目:

springboot项目pom文件在哪里_依赖注入

springboot项目pom文件在哪里_maven项目_02

springboot项目pom文件在哪里_spring_03

springboot项目pom文件在哪里_maven项目_04

创建好maven项目之后,根据需要创建不通的 模块;

 

 

springboot项目pom文件在哪里_maven项目_05

在此创建了 6个模块:

springboot项目pom文件在哪里_maven项目_06

创建的6个模块会再 最外层的pom文件中自动 定义为module;

每个模块直接需要引用时 ,需要在 对应模块的 pom中修改 增加需要引用的模板即可;
例如 dao依赖 beans;在dao的pom中增加:artifactId 就是 最外层pom中定义的module值;

springboot项目pom文件在哪里_maven项目_07

 

 

spring基础配置:

四个原则:

使用pojo进行轻量级和最小侵入式开发;

通过依赖注入和基于接口编程实现松耦合;

通过aop和默认习惯进行声明式编程

使用aop和模板减少模式化代码

控制反转 inversion of control  IOC

依赖注入 dependency ingection   DI

控制反转是通过依赖注入实现的

依赖注入就是指的容器扶着创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖;

依赖注入的主要目的是为了解耦;

spring ioc容器 负责创建bean;并通过容器将功能类bean注入到需要的bean中;

 

声明bean的注解:

@Component 组件,没有明确的角色

@Service 在业务逻辑层service层的 类使用;

@Repository 在数据访问层dao使用

@Controller在展示层,web层使用;

上面四个注解是等效的;

@Configuration 声明当前类是一个配置类,相当于一个spring配置的xml文件;

@Bean  注解在方法上,声明当前方法返回值为一个bean;

@ComponentScan("需要扫描的包") 会扫描此包及子级包下所有需要注册的bean

AOP面向切面编程:

@Aspect  声明是一个切面

@After  @Before @ Around  定义建言(davice) 可直接将拦截规则(切点)作为参数;

@Target(ElementType.MEHTOD)  定义切点可以使用在方法上,或其他选择;

springboot项目pom文件在哪里_依赖注入_08

 

@Retention(RetentionPolicy.RUNTIME)  运行时有效;