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