Git

作者: sunboximeng | 来源:发表于2018-11-20 23:18 被阅读5次

    工作区、暂存区、本地仓库、远程仓库(github、码云)

    工作流程:

    • Down
      • 本地没有仓库:clone仓库,只有下载。创建仓库:git init。
      • 本地有仓库:pull,包括下载和合并。
        git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并
    • Up:
      • add到暂存区(直接复制一个文件到仓库中,工作区可以对其操作,但仓库是看不见的,必须先进行添加。被添加的文件以后要是修改了,直接commit就行)
      • commit到本地仓库。需要附带注释。
      • push到远程仓库。
        • git remote add origin git@github.com:Owner/RepositoryName.git
          git push -u origin master

    查看日志(提交历史):

    利用SSH连接远程仓库:

    • 在本地生成密匙。
    • 把公钥上传至远程仓库

    分支管理(不同的时间线)

    • master是主分支,head是当前分支。
    • 合并分支,需要手动解决冲突

    IDEA集成Git

    • 在version control 里面配置git.exe的路径
    • 把IDEA的工作空间(工程的上级目录)变成仓库,它里面的工程既可以交给Git管理
      在菜单中选择“vcs”→Import into Version Control→Create Git Repository
      三个圆点表示commit
    • 推送至远程仓库
      vcs→git→push
      点击“Define remote”链接,配置https形式的URL
      点击“push”按钮就讲本地仓库推送到远程,如果是第一次配置推送需要输入github的用户名和密码。
    • 从远程仓库克隆
      关闭工程后,在idea的欢迎页上有“Check out from version control”下拉框,选择git
      如果需要从服务端同步代码可以使用工具条中的“update”按钮(蓝色箭头)

    现在已经利用可视化界面把代码从远程仓库拉下来了。如何用idea打开从而进行编辑?应该是直接导入吧。

    war包结构

    • 静态资源(页面、css、js、图片)
    • 首页
    • WEB-INF
      • classes // 包含编译后的java代码、xml、property配置文件。也就是说,java和resource包里面的内容都放在这里了。
      • lib // maven所管理的jar包
      • web.xml

    Tomcat怎么样解析这个war包?
    Tomcat也是一个容器,通过扫描web.xml创建对象。

    包结构

    • src
      • main
        • java
          • com.hw
            • controller/service/dao/model
        • resource
          • applicationContext.xml
          • springmvc.xml
          • log4j.properties
          • db.properties
        • webapp // 只要被部署在tomcat中(打成war包)就会有这个包,因为需要他的web.xml。即便是service模块,也是需要扫描包,因此需要加载spring配置文件,因此需要web.xml。
          • css/js/img/plugins
          • WEB-INF
            • pages
              • list.jsp
            • web.xml
        • index.jsp
      • test
    • pom.xml

    包的运行

    • SSM写出来的代码没有主类,其实是放在tomcat中启动的tomcat实现部署。
    • springboot倒是还有一个主类。可以直接把项目启动起来。

    配置文件内容

    学框架就是学他的注解和xml配置。spring-security也是如此,不过多个接口要实现。

    1. db.properties或者redis.properties

      • jdbc.driver=
      • jdbc.url=
      • jdbc.username=
      • jdbc.password=
    2. 与dao接口对应的mapper.xml。他们的包名要一致。
      可以使用纯注解的方式取消掉这个xml。它里面写的就是sql语句和数据封装方式,可以直接写在接口上。但是动态SQL就没办法写了吧?

    3. spring的配置文件
      扫描包,mysql、redis的配置。

      • 包扫描:service、dao
        <context:component-scan base-package="com.sina.service;com.sina.dao"></context:component-scan>

      • 扫描dao接口
        <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value=""/>
        </bean>

      • 加载数据库连接信息
        <context:property-placeholder location="classpath:db.properties"/>

      • 数据库连接池(dbcp、c3p0、druid)
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql:///springdb" />
        <property name="user" value="${jdbc.username}" />
        <property name="password" value="root" />
        </bean>

      • 配置spring框架的事务管理。并没有使用mybatis的。
        <--事务管理器-->
        <bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
        <property name="dataSource" ref="dataSource"></property>
        </bean>
        <tx:annotation-driven transaction-manager="transactionManager"/>

      • Spring整合Mybatis框架
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />

        <--pageHelper分页插件-->
        <property name="plugins">
        <array>
        <bean class="com.github.pagehelper.PageInterceptor">
        <property name="properties">
        <props>
        <--不同数据库的分页方法不一样-->
        <prop key="helperDialect">oracle</prop>
        <--分页合理化参数,防止页码越界-->
        <prop key="reasonable">true</prop>
        </props>
        </property>
        </bean>
        </array>
        </property>

      </bean>

      • AOP的配置好像可以使用注解。
    4. springMVC的配置文件

      • 包扫描:controller
        <context:component-scan base-package=""></context:component-scan>

      • 开启对SpringMVC对注解的支持
        <mvc:annotation-driven/>

      • 视图解析器,jsp开发的时候用。
        <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <-- JSP文件所在的目录 -->
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
        </bean>

      • 静态资源不拦截
        如果将DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括静态资源的请求,Spring MVC会将它们当成一个普通请求处理,因此找不到对应处理器将导致错误。
        如何让Spring框架能够捕获所有URL的请求,同时又将静态资源的请求转由Web容器处理,是可将DispatcherServlet的请求映射配置为"/"的前提。
        <mvc:resources location="/css/" mapping="/css/" />
        <mvc:resources location="/images/" mapping="/images/
        " />
        <mvc:resources location="/js/" mapping="/js/**" />

    5. web.xml
      5.1 service、dao层
      配置了一个listener
      <-- 加载spring配置文件,文件路径加classpath前缀 -->
      <context-param>

       <param-name>contextConfigLocation</param-name>
       <param-value>classpath*:spring/applicationContext*.xml</param-value>
      

      </context-param>
      <listener>

       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      

      </listener>
      5.2 web层:
      配置了servlet、filter。不仅需要配置类名用于反射,还需要配置拦截路径!

      • controller层要解决编码问题,所以配置一个filter

      <filter>

       <filter-name>CharacterEncodingFilter</filter-name>
       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
       <init-param>
           <param-name>encoding</param-name>
           <param-value>utf-8</param-value>
       </init-param>
       <init-param>  
           <param-name>forceEncoding</param-name>  
           <param-value>true</param-value>  
       </init-param>  
      

      </filter>
      <filter-mapping>

       <filter-name>CharacterEncodingFilter</filter-name>
       <url-pattern>/*</url-pattern>
      

      </filter-mapping>

      • 加载springMVC的配置文件及前端控制器

      <servlet>

      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <指定加载的配置文件 ,通过参数contextConfigLocation加载>
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring/springmvc.xml</param-value>
      </init-param>
      

      </servlet>

      <servlet-mapping>

      <servlet-name>springmvc</servlet-name>
      <url-pattern>*.do</url-pattern>
      

      </servlet-mapping>

      • spring security
        <--spring security-->
        <-- 加载spring security的配置文件 -->

      <context-param>

       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:spring/spring-security.xml</param-value>
      

      </context-param>

      <listener>

       <listener-class>
           org.springframework.web.context.ContextLoaderListener
       </listener-class>
      

      </listener>
      <-- spring security用到的过滤器 -->
      <filter>

       <filter-name>springSecurityFilterChain</filter-name>
       <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
      

      </filter>
      <filter-mapping>

       <filter-name>springSecurityFilterChain</filter-name>
       <url-pattern>/*</url-pattern>
      

      </filter-mapping>

    相关文章

      网友评论

          本文标题:Git

          本文链接:https://www.haomeiwen.com/subject/ueqfqqtx.html