工作区、暂存区、本地仓库、远程仓库(github、码云)
工作流程:
- Down
- 本地没有仓库:clone仓库,只有下载。创建仓库:git init。
- git clone git@github.com:Owner/RepositoryName.git
- 本地有仓库:pull,包括下载和合并。
git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并
- 本地没有仓库:clone仓库,只有下载。创建仓库:git init。
- Up:
- add到暂存区(直接复制一个文件到仓库中,工作区可以对其操作,但仓库是看不见的,必须先进行添加。被添加的文件以后要是修改了,直接commit就行)
- commit到本地仓库。需要附带注释。
- push到远程仓库。
- git remote add origin git@github.com:Owner/RepositoryName.git
git push -u origin master
- git remote add origin git@github.com:Owner/RepositoryName.git
查看日志(提交历史):
利用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
- com.hw
- 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
- pages
- index.jsp
- java
- test
- main
- pom.xml
包的运行
- SSM写出来的代码没有主类,其实是放在tomcat中启动的tomcat实现部署。
- springboot倒是还有一个主类。可以直接把项目启动起来。
配置文件内容
学框架就是学他的注解和xml配置。spring-security也是如此,不过多个接口要实现。
-
db.properties或者redis.properties
- jdbc.driver=
- jdbc.url=
- jdbc.username=
- jdbc.password=
-
与dao接口对应的mapper.xml。他们的包名要一致。
可以使用纯注解的方式取消掉这个xml。它里面写的就是sql语句和数据封装方式,可以直接写在接口上。但是动态SQL就没办法写了吧? -
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的配置好像可以使用注解。
-
-
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/**" />
-
-
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>
网友评论