spring 的简单了解
工作原因,需要接手 java 的代码,查了一下 spring 框架的东西
Spring 那一套入门
- springmvc spring mybatis ssm架构
- Spring MVC入门
- M 代表 模型(Model), 模型就是数据,就是 dao,bean
- V 代表 视图(View), 视图就是网页, JSP,用来展示模型中的数据
- C 代表 控制器(controller), 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。
- 传统的模型层被拆分为了业务层(Service)和数据访问层(DAO,Data Access Object)。
- 所有的注解类型都继承自这个普通的接口(Annotation)。
- 注解的属性也叫做成员变量。注解只有成员变量,没有方法。注解的成员变量在注解的定义中以“无形参的方法”形式来声明,其方法名定义了该成员变量的名字,其返回值定义了该成员变量的类型。
- java 中的注解理解
- 在注解中定义属性时它的类型必须是 8 种基本数据类型外加 类、接口、注解及它们的数组。
- 注解主要给编译器及工具类型的软件用的。
- 注解的提取需要借助于 Java 的反射技术,反射比较慢,所以注解使用时也需要谨慎计较时间成本。
- Spring入门看这一篇就够了
- Spring是一种非侵入式的框架
- Spring的核心思想之一:Inversion of Control , 控制反转 IOC: 对象的创建交给外部容器完成,这个就做控制反转。
- 所谓控制反转,就是把创建对象(Bean)和维护对象(Bean)关系的权力从程序中转移到Spring容器中,而程序本身不再负责维护。
- 依赖注入,dependency injection.
- Spring 使用依赖注入来实现对象之间的依赖关系, 在创建完对象之后,对象的关系处理就是依赖注入。
- Spring模块:
- Spring可以分为6大模块:
- Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系
- Spring Web Spring对web模块的支持。
- 可以与struts整合,让struts的action创建交给spring
- spring mvc模式
- Spring DAO Spring 对jdbc操作的支持 【JdbcTemplate模板工具类】
- Spring ORM spring对orm的支持:
- 既可以与hibernate整合,【session】
- 也可以使用spring的对hibernate操作的封装
- Spring AOP 切面编程
- SpringEE spring 对javaEE其他模块的支持
- Spring可以分为6大模块:
- 廖雪峰 spring 入门
- 使用Spring,没有new对象,而是把创建对象的任务交给Spring框架
- Spring怎么维护对象与对象之间的关系呢? –> 利用ref属性。
MyBatis 理解
- MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架,其几乎消除了所有的 JDBC 代码和参数的手工设置以及结果集的检索。
- MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
- MyBatis 应用程序大都使用 SqlSessionFactory 实例,SqlSessionFactory 实例可以通过 SqlSessionFactoryBuilder 获得,而 SqlSessionFactoryBuilder 则可以从一个 XML 配置文件或者一个预定义的配置类的实例获得。
- MyBatis 教程
- 使用 IDEA 创建 Java 项目
- Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标[1]。JDBC是面向关系型数据库的。
java 中的打包逻辑
- ant 可以自动打包逻辑。
- maven 也可以自动化打包,相比于ant,它多做的事情就是帮你下载 jar 包。
- 但是 maven 的打包逻辑太死板,定制起来太麻烦,不如 ant 好用,gradle 就是又能自动下 jar 包,又能自己写脚本,并且脚本写起来还比 ant 好用。
- Gradle从入门到实战 - Groovy基础
ssm架构
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- MyBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
- SSM架构整合简化示意图
- Dao 层: 也叫作数据访问层, 主要利用Mybatis这一优秀的持久化层框架实现代码与SQL语句的分离,消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
- API 接口层: 提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
- 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
- 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
- Service层: Spring是一个分层的轻量级Java开源框架,主要是提供一种方法来管理业务对象。
- Web层: Spring MVC框架,主要利用中央控制器DispatcherServlet完成客户端发送的请求。
- 客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.
- DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。
- DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。
- Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。
- Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。
- Dao 层: 也叫作数据访问层, 主要利用Mybatis这一优秀的持久化层框架实现代码与SQL语句的分离,消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
spring-task定时任务
-
- 使用spring task实现定时任务有两种方式:注解和xml配置文件。这里使用xml配置文件的方式加以说明。
-
default-autowire,它是在xml文件中进行配置的,可以设置为byName、byType、constructor和autodetect;比如byName,不用显式的在bean中写出依赖的对象,它会自动的匹配其它bean中id名与本bean的set**相同的,并自动装载。
- @Autowired是用在JavaBean中的注解,通过byType形式,用来给指定的字段或方法注入所需的外部资源。
-
- POJO全称是Plain Ordinary Java Object / Pure Old Java Object, 普通Java类.
- Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean。
- 由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 是不能被跨进程访问的.
- 一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。