欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年全注解SSH .pdf

    • 资源ID:35302350       资源大小:118KB        全文页数:9页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年全注解SSH .pdf

    全注解 SSH 一,hibernate annotation Class注解:1.Entity:表明当前类是一个持久化类2.Table(name=team,catalog=NBA):映射一个表team ,所对应的数据库是 NBA ,可以省略字段属性注解:1.GenericGenerator(name = generator, strategy = increment) Id GeneratedValue(generator = generator) Column(name = id, unique = true, nullable = false) 解释:表明该字段是主键,自增长,不为空而且是唯一的2.Column(name = description, length = 500) 解释:映射表中的description字段,长度是 500 3.OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY , mappedBy = category) 解释:级联操作: cascade = CascadeType.ALL,延迟加载: fetch = FetchType.LAZY,映射: mappedBy = category,一对多方式4.ManyToOne(fetch = FetchType.LAZY) JoinColumn(name = category_id) 解释:延迟加载:多对一方式, 关联信息:外键 name = category_id OneToMany事例代码:数据库: mysql category表:id,name,description (id) product表:id,name,price,description,category_id (id ,category_id) Category.java package com.b510.examples; import java.util.HashSet; import java.util.Set; / 标准注解import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; /增加的注解import org.hibernate.annotations.GenericGenerator; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - /当前的类是一个持久化类,是 Category 这个类。 他映射了一个表category。所对应的数据库是users /这句: Table(name = category, catalog = users) 可以省略Entity Table(name = category, catalog = users) public class Category implements java.io.Serializable private static final long serialVersionUID = 3240281547213597385L; private Integer id; private String name; private String description; private Set products = new HashSet(0); public Category() public Category(String name, String description, Set products) this.name = name; this.description = description; this.products = products; / 主键:Id 主键生成方式:strategy = increment /映射表中 id 这个字段,不能为空,并且是唯一的GenericGenerator(name = generator, strategy = increment) Id GeneratedValue(generator = generator) Column(name = id, unique = true, nullable = false) public Integer getId() return this.id; public void setId(Integer id) this.id = id; /映射表中 name这个字段,长度是 500 Column(name = name, length = 500) public String getName() return this.name; public void setName(String name) this.name = name; /映射表中 description 这个字段,长度是 500 Column(name = description, length = 500) public String getDescription() return this.description; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - public void setDescription(String description) this.description = description; /级联操作: cascade = CascadeType.ALL /延迟加载: fetch = FetchType.LAZY /映射: mappedBy = category /一对多方式OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY , mappedBy = category) public Set getProducts() return this.products; public void setProducts(Set products) this.products = products; Product.java 代码:package com.b510.examples; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import org.hibernate.annotations.GenericGenerator; Entity Table(name = product, catalog = users) public class Product implements java.io.Serializable private static final long serialVersionUID = -1546206493725028472L; private Integer id; private Category category; private String name; private String price; private String descripton; public Product() public Product(Category category, String name, String price, String descripton) this.category = category; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - this.name = name; this.price = price; this.descripton = descripton; GenericGenerator(name = generator, strategy = increment) Id GeneratedValue(generator = generator) Column(name = id, unique = true, nullable = false) public Integer getId() return this.id; public void setId(Integer id) this.id = id; /延迟加载:多对一方式/关联信息:外键name = category_id ManyToOne(fetch = FetchType.LAZY) JoinColumn(name = category_id) public Category getCategory() return this.category; public void setCategory(Category category) this.category = category; Column(name = name, length = 500) public String getName() return this.name; public void setName(String name) this.name = name; Column(name = price, length = 10) public String getPrice() return this.price; public void setPrice(String price) this.price = price; Column(name = descripton, length = 500) public String getDescripton() return this.descripton; public void setDescripton(String descripton) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - this.descripton = descripton; ManyToMany 事例代码:你可以通过 ManyToMany 注解可定义的多对多关联. 同时 ,你也需要通过注解JoinTable描述关联表和关联条件 . 如果是双向关联 ,其中一段必须定义为owner,另一端必须定义为inverse(在对关联表进行更新操作时这一端将被忽略): Entity public class Employer implements Serializable ManyToMany( targetEntity=org.hibernate.test.metadata.manytomany.Employee.class, cascade=CascadeType.PERSIST, CascadeType.MERGE ) JoinTable( name=EMPLOYER_EMPLOYEE, joinColumns=JoinColumn(name=EMPER_ID), inverseJoinColumns=JoinColumn(name=EMPEE_ID) ) public Collection getEmployees() return employees; . Entity public class Employee implements Serializable ManyToMany( cascade = CascadeType.PERSIST, CascadeType.MERGE, mappedBy = employees, targetEntity = Employer.class ) public Collection getEmployers() return employers; 二,Spring 注释Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:Repository、Service 和 Controller。在目前的Spring 版本中,这3 个注释和 Component 是等效的,但是从注释类的命名上, 很容易看出这3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这3 个注释和名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - Component 相比没有什么新意, 但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用Repository、Service 和 Controller 对分层中的类进行注释,而用Component 对那些比较中立的类进行注释。Controller 例如Controller public class SoftCreateController extends SimpleBaseController 或者Controller(softCreateController) 说明: Controller 负责注册一个bean 到 spring 上下文中, bean 的 ID 默认为类名称开头字母小写Service 例如Service public class SoftCreateServiceImpl implements ISoftCreateService 或者Service(softCreateServiceImpl) 说明: Service 负责注册一个bean 到 spring 上下文中, bean 的 ID 默认为类名称开头字母小写Autowired 例如 Autowired private ISoftPMService softPMService; 或者Autowired(required=false) private ISoftPMService softPMService = new SoftPMServiceImpl(); 说明:Autowired 根据bean 类型从spring 上线文中进行查找,注册类型必须唯一,否则报异常。与Resource 的 区 别 在 于 , Resource 允 许 通 过bean 名 称 或bean 类 型 两 种 方 式 进 行 查 找Autowired(required=false) 表示,如果spring 上下文中没有找到该类型的bean 时,才会使用new SoftPMServiceImpl(); RequestMapping 类Controller RequestMapping(/bbtForum.do) public class BbtForumController RequestMapping(params = method=listBoardTopic) public String listBoardTopic(int topicId,User user) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 方法RequestMapping(/softpg/downSoftPg.do) RequestMapping(value=/softpg/ajaxLoadSoftId.do,method= POST) RequestMapping(value = /osu/product/detail.do, params = modify=false , method =POST) 说明: RequestMapping 可以声明到类或方法上参数绑定说明如果我们使用以下的 URL 请求:http:/localhost/bbtForum.do?method=listBoardTopic&topicId=1&userId=10&userName=tomtopicId URL 参 数将绑定到 topicId 入参上,而 userId 和 userName URL 参数将绑定到 user 对象的 userId 和 userName 属性中。和 URL 请求中不允许没有 topicId 参数不同,虽然 User 的 userId 属性的类型是基本数据类型,但如果 URL 中不存在 userId 参数, Spring 也不会报错,此时 user.userId 值为 0 。如果 User 对象拥有一个 dept.deptId 的级联属性,那么它将和 dept.deptId URL 参数绑定。ModelAttribute 作用域: request 例如RequestMapping(/base/userManageCooper/init.do) public String handleInit(ModelAttribute(queryBean) ManagedUser sUser,Model model,) 或者ModelAttribute(coopMap)/ 将 coopMap 返回到页 面public Map coopMapItems() 说明ModelAttribute 声明在属性上,表示该属性的value 来源于model 里queryBean ,并被保存到model 里ModelAttribute 声明在方法上,表示该方法的返回值被保存到model 里Cacheable 和CacheFlush Cacheable :声明一个方法的返回值应该被缓存例如: Cacheable(modelId = testCaching) CacheFlush :声明一个方法是清空缓存的触发器例如:CacheFlush(modelId = testCaching) Resource 例如Resource private DataSource dataSource; / inject the bean named dataSource 或者Resource(name=dataSource) Resource(type=DataSource.class) 说明Resource 默认按 bean 的 name 进行查找,如果没有找到会按type 进行查找,此时与Autowired 类 似PostConstruct 和PreDestroy PostConstruct 在方法上加上注解PostConstruct ,这个方法就会在Bean 初始化之后被Spring 容器执 行(注: Bean 初始化包括,实例化Bean ,并装配 Bean 的属性(依赖注入) ) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - PreDestroy 在方法上加上注解PreDestroy ,这个方法就会在Bean 被销毁前被Spring 容器执行。Repository 与Controller 、Service 类似,都是向spring 上下文中注册bean ,不在赘述。Component (不推荐使用)Component Component 是所有受 Spring 管理组件的通用形式,Spring 还提供了更加细化的注解形式:Repository 、Service 、Controller ,它们分别对应存储层Bean ,业务层 Bean ,和展示层Bean 。目前版本( 2.5 )中,这些注解与Component 的语义是一样的,完全通用,在 Spring 以后的版本中可能会给它们追加更多的语义。所以,我们推荐使用 Repository 、 Service 、 Controller 来替代 Component 。Scope 例如Scope(session) Repository() public class UserSessionBean implementsSerializable 说明在使用XML 定义Bean 时,可以通过bean 的 scope 属性来定义一个Bean 的作用范围,同样可以通过Scope 注解来完成SessionAttributes 说明Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到 session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性。这一功能是通过类定义处标注 SessionAttributes 注解来实现的。 SessionAttributes 只能声明在类上,而不能声明在方法上。例如SessionAttributes(currUser) / 将ModelMap 中属性名为currUser 的属性SessionAttributes(attr1,attr2) SessionAttributes(types=User.class) SessionAttributes(types=User.class,Dept.class) SessionAttributes(types = User.class,Dept.class,value=attr1,attr2) InitBinder 说明如果希望某个属性编辑器仅作用于特定的 Controller ,可以在 Controller 中定义一个标注 InitBinder 注解的方法,可以在该方法中向 Controller 了注册若干个属性编辑器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 例如InitBinderpublic void initBinder(WebDataBinder binder) SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

    注意事项

    本文(2022年全注解SSH .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开