zoukankan      html  css  js  c++  java
  • spring源码构建

    版本

      IDEA  2018.5

      Gradle  5.6.3

      Spring  5.1.xxx

    步骤参考:

      https://www.yuque.com/docs/share/a0ebb22b-1dbc-4ad1-b1f7-7999419d27a3?#

    1、下载gradle,Spring 源码

    链接:https://pan.baidu.com/s/1hIHb8Y_Ixlr_vqF7LF1J0Q
    提取码:gyfi 

    2、解压配置环境变量

    3、配置gradle全局国内仓库

    (跟第五条有关联可先不配置)

    找到本地gradle仓库地址,一般为 .gradle文件夹。然后在里面添加init.gradle文件,文件内容如下

    allprojects{
        repositories {
            def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
            def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
            all { ArtifactRepository repo ->
                if(repo instanceof MavenArtifactRepository){
                    def url = repo.url.toString()
                    if (url.startsWith('https://repo1.maven.org/maven2')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                        remove repo
                    }
                    if (url.startsWith('https://jcenter.bintray.com/')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                        remove repo
                    }
                }
            }
            maven {
                    url ALIYUN_REPOSITORY_URL
                url ALIYUN_JCENTER_URL
            }
        }
    }

    4、导入项目

    没有导入import project,

      方法1、File  >>  close project

      

      方法2、Settings > Appearance & Bechavior > Menus and Toolbars.

    打开Main menu > File > 选中File 下边任意一个, 点击 右侧按钮 Add After
    这里会弹出一个界面让你选择添加的功能

    Import Project 选项在Other目录下, 找到import Project ,点击OK保存设置即可 

     

     开始导入

     5、修改spring源码部分中的gradle配置

    首先找到源码中 spring-framework-5.1.xspring-framework-5.1.xgradlewrapper  文件夹,修改gradle-wrapper.properties中的属性   该处主要是为了防止再次下载其他的版本gradle

    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    distributionUrl=file:///C:Program Files/Java/gradle-5.6.3-all.zip 
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists

     repositories {
             maven { url "https://maven.aliyun.com/repository/spring-plugin" }
             maven{ url "https://maven.aliyun.com/nexus/content/repositories/spring-plugin"}
             maven { url "https://repo.spring.io/plugins-release" }
            maven { url "https://repo.spring.io/plugins-release" }
        }
     repositories {
        maven { url "https://maven.aliyun.com/repository/central" }
            maven { url "https://repo.spring.io/libs-release" }
            mavenLocal()
        }

    6、编译顺序为:core-oxm-context-beans-aspects-aop

    ⼯程>tasks>compileTestJava

     7、测试

    新建model

     

     

     添加依赖(修改红色区域)指定jdk版本号,依赖 spring-context

     

     

     编写测试

    public class IocTest {
        @Test
        public void testIoC() {
            ApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
            LagouBean lagouBean = classPathXmlApplicationContext.getBean(LagouBean.class);
            System.out.println(lagouBean);
        }
    }

    applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            https://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/aop
            https://www.springframework.org/schema/aop/spring-aop.xsd
    ">
    
        <!--循环依赖问题-->
        <bean id="lagouBean" class="com.lagou.edu.LagouBean">
            <property name="ItBean" ref="itBean"/>
        </bean>
        <bean id="itBean" class="com.lagou.edu.ItBean">
            <property name="LagouBean" ref="lagouBean"/>
        </bean>
    
    
        <!--<bean id="myBeanFactoryPostProcessor" class="com.lagou.edu.MyBeanFactoryPostProcessor"/>
        <bean id="myBeanPostProcessor" class="com.lagou.edu.MyBeanPostProcessor"/>-->
    
    
        <!--<bean id="lagouBean" class="com.lagou.edu.LagouBean">
        </bean>-->
    
    
        <!--aop配置-->
        <!--横切逻辑-->
        <!--<bean id="logUtils" class="com.lagou.edu.LogUtils">
        </bean>
    
        <aop:config>
            <aop:aspect ref="logUtils">
                <aop:before method="beforeMethod" pointcut="execution(public void com.lagou.edu.LagouBean.print())"/>
            </aop:aspect>
        </aop:config>-->
    
    
    </beans>
    创建 LagouBean 
    public class LagouBean implements InitializingBean, ApplicationContextAware {
    
        private ItBean itBean;
    
        public void setItBean(ItBean itBean) {
            this.itBean = itBean;
        }
    
        /**
         * 构造函数
         */
        public LagouBean(){
            System.out.println("LagouBean 构造器...");
        }
    
    
        /**
         * InitializingBean 接口实现
         */
        public void afterPropertiesSet() throws Exception {
            System.out.println("LagouBean afterPropertiesSet...");
        }
    
        public void print() {
            System.out.println("print方法业务逻辑执行");
        }
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            System.out.println("setApplicationContext....");
        }
    }

    到这,说明 Spring源码构建成功

  • 相关阅读:
    poj2082单调栈
    Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句
    Javascript权威指南——第一章Javascript概述
    前端工程师理解
    easyui tree获取直接子节点而不获取孙子节点方法
    centos linux安装telnet 过程及问题(源于内部tomcat网站,外部无法访问)
    AspectJ基础学习之三HelloWorld(转载)
    AspectJ基础学习之二搭建环境(转载)
    AspectJ基础学习之一简介(转载)
    js数组特定位置元素置空,非null和undefined,实现echarts现状图效果;谷歌格式化压缩js代码
  • 原文地址:https://www.cnblogs.com/denghy-301/p/14552340.html
Copyright © 2011-2022 走看看