1、JAVA注解
JDK注解:
Override(重写):覆盖了一个方法并且对其重写。
Deprecated(不赞成,反对):此方法不建议使用。(此方法有缺陷或有更好的选择)。
suppvisewarnings(管理警告):压制警告。
Spring注解:
@Service用于标注业务层(service层)组件、
@Controller用于标注控制层组件(如struts中的action)。
@Repository用于标注数据访问组件,即DAO组件。
@Autowried 自动注入。
2、ORM
为什么要有ORM?
在用面向对象思想编写应用程序的时候,最终都是把对象的信息保存在关系型数据库中,这样我们就需要编写很多与底层数据库相关的SQL语句。显然这样是很不便捷的,ORM框架技术就可以解决这些繁琐的问题。
ORM存在的意义?
彻底抛弃书写SQL语句的思想,完全使用面向对象的思想开发。
为什么要抛弃程序中书写SQL语句的思想?
①不同的数据库使用的SQL语法不同,例:同样一段SQL脚本,能在T-SQL中运行,但不一定能保证可以在PL-SQL中运行。
②同样的功能在不同的数据库有不同的实现方式,例:分页SQL。
③程序过分依赖SQL,对程序的移植、扩展和维护带来很大的麻烦。
3、
Spring
Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架和开源框架。
(1) Spring框架的好处:
①从大小和开销两个方面而言Spring都是轻量级的。
②通过控制反转的技术达到松耦合的目的。
③提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑和系统级服务进行内聚性的开发。
④包含管理应用对象的配置与生命周期,从此意义来讲是个容器。
⑤将简单组件配置、组合成复杂应用,从此意义来讲是框架。
IOC 思路:当业务的对象进入了Spring的容器,然后通过配置原数据来生产出符合系统需要的数据。当系统需要使用这些对象时就直接去Spring容器里面拿。
AOP思路:通过预编译方式和运行期动态代理实现程序功能统一维护的一种技术。
主要功能有:日志记录、性能统计、安全控制、事务处理、异常处理等。
注: 预编译方式有AspectJ。
动态代理方式:JDK动态代理和CGLib动态代理。(Spring AOP 和JbossAop)
Spring Aop的用途:①提供了声明的企业级服务,特别是EJB的替代服务的声明。
②允许用户定义自己的方法,以完成OOP和Aop的互补使用。
(1) Spring的事务管理
Spring的事务管理高层抽象主要包括3个接口:
TransactionDefinition定义事务传播行为(7种):
4、Struts
struts是流行和成熟的基于MVC设计模式的web应用程序框架。
①指定method属性的方法。
<action name="" method="" class="">
<result>/index.jsp</result>
</action>
②感叹号的方式。
<action name="" class="">
<result>/index.jsp</result>
</action>
<constant name="structs.enable.DynamicMethodInvocation" value="true"></constant>
③通配符的方式。
<action name="_*" method="{1}" class="">
<result>/index.jsp</result>
<result>/{1}.jsp</result>
</action>
在使用通配符的时候,如果要使用多个method的话,可以再在method=“{1}{2}...”里面这样添加,同时修改name=“”同时需要修改name=""里面的名字+后缀_*_*...,还要配置所需要的<result>/{}.jsp</result>标签。
(2)
(3)Struts2拦截器工作原理
①首先执行拦截器一,执行拦截器一的处理方法并做一些处理操作。
②如果还有其它的拦截器,将执行拦截器二、拦截器三…进行拦截。
③当所有的拦截器都执行之后,将执行action操作,并调用action中的业务处理方法进行业务的处理。
④调用完之后,会返回一个字符串结果,也就是Result结果集,然后进行视图的匹配。
⑤再将前面执行的拦截器进行反向的再执行一次,最终响应到客户端。
5、hibernate
Hibernate是Java领域内的一款开源的ORM框架技术。
Hibernate的机制原理:
①Hibernate对JDBC进行非常轻量级的封装。
(从本质上而言,最终Hibernate还是通过JDBC来进行对数据库的操作,只不过在JDBC的基础上进行了一定的封装)
②与EBJ(本身是JavaEE的规范,重量级的ORM框架技术)不同,Hibernate属于轻量级的ORM框架技术。
③hibernate介于数据库层和业务逻辑层之间,起到持久化层的作用。
HQL数据查询基础:
检索对象--from子句
选择--select子句
限制--where子句
排序--order by 字句
HQL与SQL语句不同,HQL中from子句是必须的,可以没有select字句。
Hibernate的常用属性:
cascade:设置级联关系。 inverse:设置哪一方维护关联关系。
例:下面的这段代码集合了常用属性以及表与表之间的多对一和一对多关系。
<hibernate-mapping>
<class name="" table="">
<id name="id" type="java.lang.Long">
<column name="ID" />
<generator class="increment" />
</id>
<many-to-one name="" class=""
fetch="">
<column name="" />
</many-to-one>
......
<set name="" inverse="true" cascade="all" lazy="false">
<key>
<column name="" />
</key>
<one-to-many class="" />
</set>
</class>
</hibernate-mapping>