- 博客(53)
- 资源 (1)
- 收藏
- 关注
原创 Hello Struts2
Struts2可以提供了Web应用程序开发过程中的一些常见问题的解决方案–对来自用户的输入数据进行合法性验证–统一的布局–可扩展性–国际化和本地化–支持Ajax–表单的重复提交–文件的上传下载Struts2使用了一个过滤器作为控制器Struts2,HTML表单将直接映射到一个POJOStruts2中验证逻辑编写在Action中Struts2任何一个POJO都可以作为一个Act...
2018-11-22 23:49:10
192
原创 structs2-使用filter作为控制器的MVC应用
MVC设计模式的概览实现MVC(Model -View- Controller(servlet/filter))在index.jsp页面中有超链接跳转到input.jsp,在input.jsp中表单添加数据,提交并显示在details.jsp页面中index.jsp页面中:<%@ page language="java" contentType="text/html; charset...
2018-11-21 22:39:06
220
原创 spring 零配置
以前非常流行使用XMl来配置后来流行来用注解来代替XML其实XML配置和注解都是一样的无论xml还是注解,它们都是提供配置,只是载体不同strut2的零配置:必须增加一个jar包 struts2-convention-plugin.jar(约定)<action name=""class=“”method=""><exception-mapping>异常机制&l...
2018-11-21 20:56:19
575
原创 spring的事务
事务是企业应用中最小的逻辑执行单元事务的特性:(ACID)-原子性-一致性:数据库事务提交之前和之后都是一致性-隔离性:事务的中间状态对于外界是隔离的-持续性:事务一旦提交,对数据库的修改将永远生效传统事务控制的问题持久化技术不同,做事务控制的API也会不同,事务控制代码也会随之改变事务控制代码需要放在service层完成,但我们将service与dao分离,目的为了service...
2018-11-21 00:34:00
146
原创 AOP的5种advice
advice 5种:beforeafter returning(成功)在目标方法成功之后织入advice可额外指定一个returning属性,该属性有2个作用:-advice方法可以通过该属性指定的值来访问目标方法的返回值-advice方法的声明该返回值类型时,限制目标方法的返回值必须为指定的类型,否则不会织入如果不想对目标方法的返回值进行限制,可将该返回值声明为Objectaft...
2018-11-20 22:55:39
2588
原创 Spring-AOP
Spring-AOP为什么需要AOP:加入有方法A,B,C。。。都需要添加具有通用性质的横切处理,(比如事务控制,权限检查,日志。。。)如果不使用AOP,最容易想到的做法,需要2步:1)将 通用性质的横切处理定义一个方法2)依次修改所有的方法代码,增加调用通用方法可以不需要修改方法A,B,C。。的代码,这就是AOPAOP的分类:是按照修改的时机来划分静态AOP实现:AOP框架在编...
2018-11-20 00:17:07
96
原创 spring -structs 2整合spring
spring -structs 2整合spring1)拷jar包2)配置Structs2核心控制器和配置文件先写web.xml,再写structs2.xml3)配置web应用在启动时自动创建Spring容器用ContextLoaderListener,实现了ContextInitialized(ServletContextEvent sce),在该方法new xmlwebapplica...
2018-11-19 20:58:53
375
原创 spring的高级注入
spring的本质是通过xml去驱动Java代码的执行,xml配置和Java代码之间能够相互转化Java程序中还可能有其他类型语句:调用getter方法,调用普通方法,访问类或对象的field,而spring也为这种语句提供了对应的匹配调用getter方法:使用PropertyPathFactoryBean访问类或对象的filed值:FieldRetrievingFactoryBean普...
2018-11-18 17:11:42
192
原创 协调作用域不同步的bean
singleton bean具有较好的性能,所以spring默认将bean当成singleton行为singleton bean只有一个实例,因此当有多个线程并发使用该bean时,它就会产生线程安全问题典型的,mvc框架中的action就必须使用prototype行为一般来说如果该bean中没有成员变量,那么该bean可以使用singleton beansingleton bean依赖pr...
2018-11-14 23:33:21
152
原创 获取bean的id,bean的生命周期
获取bean的id在某些情况下,项目需要在写bean类就知道bean的配置id两部1.让bean实现BeanNameAware的接口2.实现该接口中setBeanName的方法//spring会自动检查容器中的bean,如果发现了某个bean实现了BeanNameAware这个接口,spring就立即调用setBeanName方法//spring 容器调用这个方法时,它会把beanid...
2018-11-14 22:33:36
380
原创 Facotorybean
它是spring提供的一个特殊接口实例:写一个通用的bean,该通用的bean可以读取任意类的、任意静态field的值Facotorybean需要有3个方法实现1.public object getObject() 返回工厂的产品2.getObjectType()返回工厂产品的类型3.boolean isSingleton()改方法返回产品是否为单例 <?xml versio...
2018-11-14 21:39:39
142
原创 实例化bean的3种方式
spring容器中可以使用3种方法实例化一个bean1.调用该bean的实现类的构造器2.调用工厂类的静态工厂方法factory-method指定工厂方法的名字class指定的是工厂类的类名如果工厂模式需要参数,请使用<constructor-args>传入3.调用实例工厂的实例工厂方法factory-method指定工厂方法的名字factory-bean 指定工厂的对...
2018-11-14 20:46:44
301
原创 配置依赖关系全面解析
配置依赖关系全面解析DI分成:–设置注入:<property>–构造器注入:<constructor-arg>–接口注入无论哪个注入,都涉及到传入参数值参数值:–标量类型:(8个基本类型+string)用value属性或value子元素传入值 <bean id="dog" class="org.fkjava.spring.service.impl...
2018-11-14 00:10:21
319
原创 配置依赖关系全面解析
配置依赖关系全面解析DI分成:–设置注入:<property>–构造器注入:<constructor-arg>–接口注入无论哪个注入,都涉及到传入参数值参数值:–标量类型:(8个基本类型+string)用value属性或value子元素传入值 <bean id="dog" class="org.fkjava.spring.service.impl...
2018-11-13 23:02:28
289
原创 spring bean的作用域
spring bean的作用域设置bean的作用范围,bean何时被创建,何时被销毁设置bean的作用域通过scope属性,该属性支持–singleton单例,在整个spring容器的生命周期中,该bean永远都是单例的何时生?容器创建时出生何时死?容器不死它就不死,容器销毁时才会销毁–prototype:何时生?当程序getbean,spring 就会创建它,以后就不管了它,何...
2018-11-13 21:44:57
134
原创 Spring的组成,spring容器
spring的组成IOC 容器(Bean,ApplicationContext)AOP前端mvc整合 持久化整合springmvc spring datastruts JSF JDBC、ORM(hibernate、JPA、mybatis)Portlet 事务抽象CXFspring IOC依赖注入...
2018-11-13 21:16:41
197
原创 Spring javaEE应用分层,spring介绍,依赖注入
Java EE应用的分层前端层(HTML5、CSS3 JS(ES6.1))、JQuery、Bootstrap、EasyUI、AngularJS、VUI、React前端MVC层(struts 2、springMVC)web service|restful(CXF)中间层(spring)持久层(JDBC、Hibernate、Mybatis、JPA)索引层(lucene)Redis数据库层(o...
2018-11-12 21:48:47
404
原创 缓存和对象的状态基本了解以及搭建测试架子
Session接口Session接口是hibernate向应用程序提供的操作数据库的最重要的接口,它提供了基本的保存、更新、删除和查询的方法Session是有一个缓存,又叫hibernate的一级缓存Session缓存是由一系列的Java集合构成,当一个对象被加入到Session缓存中,这个对象的引用就加入到了Java的集合中,以后即使应用程序中的引用变量不再引用对象,只要Session缓存...
2018-11-09 23:02:47
101
原创 Hibernate介绍、简单hibernate搭建
Hibernate是一个开源代码的对象关系映射框架,它对JDBC进行非常轻量级的对象封装,它将POJO与数据库表建立映射关系。是一个完全自动的ORM框架,hibernate会自动生成SQL语句,既可以用在Java的客户端程序使用,也可以在servlet/JSP的web应用中使用,它是在dao层使用的。与数据库交互操作。业务实体在内存中表现为对象,在数据库中表现为关系数据内存中对象之间的关联和继...
2018-11-06 00:06:37
117
原创 Mybatis resultMap自定义结果映射
resultType与resultMap不能同时使用<mapper namespace="com.guigu.EmployeePlus"><resultMap type=com.guigu.Employee id="MyEmp"><id column="id" property="id">//对主键列进行定义//column指哪一列,pr
2018-10-28 22:05:29
1265
原创 Mybatis映射文件select 返回List
Java代码文件中public List&lt;Employee&gt; getEmpsByLastNameLike(String lastName)mapper.xml文件为:&lt;select id="getEmpsByLastNameLike" resultType="com.guigu.mybatis.Employee"&gt;select*f
2018-10-24 22:28:40
9839
原创 Mybatis参数处理时#{}更丰富的用法
#{}更丰富的用法规定参数的一些规则javaType,jdbcType,mode(存储过程),numericScale,resultMap,typeHandler,jdbcTypeName,expresseionjdbcType需要某种特定的条件下被设置在我们数据为null的时候,有些数据库可能不能识别mybatis对null的默认处理oracle在保存null时会出错因为myba...
2018-10-24 20:45:10
215
原创 Mybatis 参数处理
1.传单个参数:Mybatis不会做特殊处理#{参数}取出参数值2.多个参数:Mybatis会做特殊处理多个参数会被封装成一个map#{}就是从map中获知指定的可以值key:param1…paramNvalue:传入的参数值为了方便起见,直接在查询的Java代码的属性名加@Param注解public Employee getEmpByIdAndLastName(@Param (&quot;...
2018-10-24 17:20:52
119
原创 Mybatis全局配置文件:environment
environments环境,mybatis可以配置多种环境environment配置一个具体的环境信息,需要要有transactionManger,dataSource,id是代表当前环境的唯一标识transactionManager:事务管理器type事务管理器的类型&lt;environments default="development"&gt;&lt;environment i...
2018-10-24 16:51:33
435
原创 Mybatis映射文件-增删改查
以接口编程开始,首先建立一个增删改查的我接口类publlic interface EmployeeMapper{public Employee getEmpById(Interger id);//查询public void addEmpt(Employee employee);//增加public void deleteEmptById(Integer id);//删除public vo...
2018-10-24 16:50:07
229
原创 Mybatis databaseIdProvider和mapper
根据不同的数据库厂商提供不同的SQL语句在全局配置文件中写入:支持oracle数据库厂商,作用就是数据库厂商的标识(驱动),Mybatis根据数据库厂商标识来执行不同的SQLMySQL,Oracle,SQL Server<databaseIdProvider type="DB_VENDOR"><property name="MySQL" value="mysql"/>...
2018-10-24 00:45:44
806
原创 Mybatis typeAliases别名
typeAliases别名处理器< typeAliases>//typeAliases为某个Java类型起别名//type指定要起别名的类型全类名,默认别名为小写employee//alias可指定新的别名< typeAlias type="com.guigu.mybatis.Employee" alias="emp">< /typeAliases>...
2018-10-23 23:01:39
169
原创 Mybatis_settings标签运行时行为
在mybatis-config.xml中加入setting的配置//将数据库中last_name 映射为Java类中的lastName
2018-10-23 22:46:01
253
原创 Mybatis全局配置文件
properties标签来引入外部配置文件的内容<properties resource="cmdbconfig.properties'</properties >resource引入类路径下的资源url引入网路路径或者磁盘路径下的资源在cmdbconfig.properties文件中写入jdbc.Driver=jdbc.url=jdbc.name=jdbc.p...
2018-10-23 22:35:36
62
原创 MyBatis接口式编程
从面向接口的方面,修改Hello World程序首先先建立一个接口EmployeeMapper,在接口中写如下代码:public interface EmployeeMapper{public Employee getEmpById(Integer id);}EmployeeMapper.xml中的代码,其中namespace不再是自己写的 ,而是接口的全类名,将接口与配置文件进行绑定...
2018-10-23 22:14:32
253
原创 MyBatis 3框架介绍(一)
JDBC->Dbutils(QueryRunner)->jdbcTemplate:工具框架:整体解决方案以前是硬编码高耦合,把SQL语句写在Java代码中,采取ORM(Object relation mapping)框架javaBean----->DBRecordsHibernate 全自动ORM全映射,把(编写sql,预编译,设置参数,执行SQL,封装结果等过程全部变成...
2018-10-23 19:25:48
239
原创 SpringMVC(五)处理模型数据
Spring MVC提供了以下几种途径输出模型数据:-ModleAndView-Map 及Model-@SessionAttributes:-@ModelAttributeModelAndView处理模型数据控制器处理方法的返回值如果为ModelAndView,则即包含视图信息,也包含模型数据信息添加模型的数据-ModelAndView addObject(String attri...
2018-10-23 16:13:45
186
原创 SpringMVC AJAX支持
AJAX支持是指不提交表单的情况下,就可以与服务器进行交互的技术步骤:1.导入jar包,包括jackson-annotation,jackson-core,jackson-databinder2.建立一个页面叫做testRequestBody.jsp写入代码:<script type="text/javascript" src="scripts/jquery-1.9.1.min.j...
2018-10-23 16:11:54
192
原创 SpringMVC 获取国际化信息(JSTL view,java代码中,超链接可以选择的方式)
国际化:1.在页面获取:JSTL view先设置2个国际化资源文件,然后在springmvc.xml中进行配置(resoucebundlemessagesource bean进行配置)<fmt:message key=“国际化资源文件中对应的key”></fmt:message>见这个文章中的详细介绍(https://blog.youkuaiyun.com/weixin_386...
2018-10-23 15:29:20
319
原创 SpringMVC自定义拦截器
SpringMVC可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlderInterceptor接口boolean preHandle();这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求request进行处理,如果ture,可以继续进行其他业务方法,如果false时,不需要处理接下来的业务方法-postHandle()这个...
2018-10-23 14:24:47
467
原创 SpringMVC 捕获错误消息
控制器业务方法获取错误消息BindingResult常用的方法:-FiledError getFiledError(String fileld)-ListgetFieldErrors()-Object getFiledValue(Sting fileld)-int getErrorCount(); public String testFormat(**@Valid User use...
2018-10-23 13:49:56
822
原创 SpringMVC Hibernate-Validator的验证框架
Hibernate Validator是JSR30一个参考实现,除支持所有标准的校验注解外,还支持以下的扩展注解注解 功能说明@Email 电子邮件@Length 字符串的大小在指定范围内@NotEmpty字符串非空@Range元素必须在合适的范围内实现步骤:1)导入jar包:Hibernate-Validator包和Hibernate-Validator-annotat...
2018-10-22 23:11:46
223
原创 SpringMVC 数据验证概念及JSR303验证
数据验证概念及JSR303验证JSR303验证@NULL@NOTNULL@MAX@PAST@Future要在spring中使用必须导入包validation-api.jarJSR303验证的使用流程1)要在spring中使用必须导入包validation-api.jar2)在POJO类中需要验证的属性上加上JSR303验证@Pastprivate Date birth;...
2018-10-22 22:56:38
207
原创 SpringMVC(十二)annotation-driver
mvc:annotation-driver作用RequestMappingHandlerMappingRequestMappingHandlerAapter方法回调ExceptionHandlerResolver@RequestMapping@ExceptionHandler数据格式化@NumberFormat可对类似数字类型的属性进行标注二个互斥的属性-style:Number...
2018-10-22 22:18:15
773
原创 SpringMVC(十一)自定义类型的转换器
自定义类型的转换器前端通过一个文本框描述一个用户信息(name,age)String-User流程:1.写一个类型转换器1)converter<S,T>S原来的类型,T目标类型2)converterFacotory:3)GenericConverter:StringToUserpublic class StringToUserConverter implements C...
2018-10-22 21:30:03
100
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人