zoukankan      html  css  js  c++  java
  • SSH所有注解 加上注解整合详细步骤

    SSH注解( 不用死记硬背,有个印象就好

    @Component( 美 [kəm'ponənt])
    作用:相当于bean.xml文件中,bean标签使用 <bean id=”” class=”” />
    属性:value:给 bean取一个名称,相当于bean标签的id属性。
    细节:如果不指定,默认使用类的名称 (首字母小写)。写法上 value可以省略。
     
     
    -@Component-衍生注解(3个)
    --1.@Controller ( 美 [kən'trolɚ] 啃磋o le )
    作用一般用于表现层对象 (Action)
     
    --2.@Service
    作用:一般用于业务层对象 (service)
     
    --3.@Repository ( 英 [rɪ'pɒzɪt(ə)rɪ]  )
    作用:一般用于持久对象 (dao)
     
     
     
    @Scope ( 英 [skəʊp]  )
    作用:设置bean的作用范围
    属性:value
    属性取值:
    singleton:单例。默认值
    prototype:多例 (Action 注意: 一定是多例)
    request:web项目中的一次请求范围
    session:web项目中的会话范围
    globalsession:web项目中全局会话范围(portlet)
     
     
    ---注入数据---
     
    @Autowired ( 英 ['ɔːtəʊ] ['waɪəd]  )
    作用:根据bean的 类型 自动注入
    细节:如果spring容器中同一个类型 有多个bean存在,则需要根据变量名称和bean的id进行比较。如果有相同则能注入成功;否则注入失败。
     
     
    @Qualifier ( 英 ['kwɒlɪfaɪə(r)]  )
    作用:在注入数据时,可以 配合@Autowired注解一起使用。在按照类型注入的基础上,按照bean的id注入。
    属性:value:指定注入bean的id
    细节:1.在给 的成员变量注入数据时,不能单独使用, 需要配合@Autowired注解一起使用
    2.在给 方法的形参 注入数据时候,可以单独使用
     
    @Resource
    作用:按照bean的id注入数据。
    属性:name:指定注入bean的id
    type:指定注入bean的类型
    细节:默认情况下(不指定属性),它会先根据变量名称注入,注入不成功;再根据类型注入。
     
    以上三个注解,都是给bean类型注入数据,不能注入基本类型和字符串String
     
     
    @Value
    作用: 基本类型和String类型注入数据。
    属性:value:注入的数据值
     
     
     
    ---和生命周期相关的注解---
     
    @PostConstruct ( post  [kən'strʌkt] )
    作用:指定在spring容器创建对象时( 构造方法执行后立即执行),调用的方法。该方法一般都是执行一些 初始化的操作。
    细节:相当于xml配置中bean标签的init-method属性
     
    @PreDestory
    作用:指定在spring容 器销毁前,调用的方法该方法一般都是执行一些 释放资源的操作。
    细节:相当于xml配置中bean标签的destroy-method属性
     
     
     
    ---Junit用到---
     
    ----------Hibernate---------
     
    hibernate注解使用到的是jpa的注解,用来代替xxx.hbm.xml那个文件
    都是放在Bean对象中使用的
     
    @Entity
    作用:声明该类是一个JPA标准的实体类
     
    @Table
    作用:指定实体类关联的表,注意如果不写表名,默认使用类名对应表名。
    属性: name 指明数据库的表
     
    @Column ( 英 ['kɒləm] ka lou )
    作用:指定实体类属性对应的表字段, 如果属性和字段一致,可以不写
    属性: name 指明数据库对应的字段名
     
    [Id生成策略
    @Id
    作用:声明属性是一个OID,对应的一定是数据库的 主键字段
     
    @GenerateValue (   美 ['dʒɛnəret] )
     
    作用:声明OID的主键策略
     
    @SequenceGenerate (   美 ['sikwəns]['dʒɛnəret] )
    作用:使用SEQUENCE策略时,用于设置策略的参数
     
     
    1.在数据库 主键为整型 自增长时写法:
     
    2.在数据库 主键为VARCHAR等非整型时写法:
     
    3.组件为uuid时写法
     
     
    @TableGenerate
    作用:使用TABLE主键策略时,用于设置策略的参数
     
    @JoinTable
    作用:关联查询时,表与表是 多对多的关系时,指定多对多关联表 中间表的参数
     
    @JoinColumn
    作用: 关联查询时,表与表是一对一、一对多、多对一以及多对多的关系时,声明表关联的 外键字段作为连接表的条件。必须配合关联表的注解一起使用
     
    @OneToMany
    作用:关联表注解,表示对应的实体和本类是 一对多的关系
     
    @ManyToOne
    作用:关联表注解,表示对应的实体和本类是 多对一的关系
     
    @ManyToMany
    作用:关联表注解,表示对应的实体和本类是 多对多的关系
     
     
     
     
    ----------Struts------------
     
    @NameSpace
    出现的 位置:它只能出现在 package 上或者 Action 类上一般情况下都是写在 Action 类上。
    作用:指定当前 Action 中所有动作方法的名称空间。
    属性:value : 指定名称空间的名称写法和 xml 配置时一致。 不指定的话,默认名称空间是""
     
     
    @ParentPackage
    出现的 位置:只能出现在 package 上或者 Action 类上。 一般情况下都是 写在 Action 类上。
    作用:指定当前动作类所在包的父包。 (eg:"struts-default")
    value :指定父包的名称
     
    @Action
    出现的 位置:它只能出现在 Action 类上或者动作方法上。一般情况下都是写在动作方法上。
    作用:指定当前动作方法的动作名称。也就是 xml 配置时 action 标签的 name 属性。
    属性:
    value :指定 动作名称
    results[]: :它是一个 数组,数据类型是注解。用于指定结果视图。此 属性可以没有当没有
    该属性时,表示 返回任何结果视图 即使用 response 输出响应正文。
    interceptorRefs[] :它是一个数组,数据类型是注解。用于指定引用的拦截器
     
    @Result
    出现的 位置:它可以出现在动作类上,也可以出现在 Action 注解中。
    作用:出现在类上,表示当前动作类中的所有动作方法都可以用此视图。
    出现在 Action 注解中,表示当前 Action 可用此视图。
    属性:
    name :指定逻辑结果视图名称。
    type :指定前往视图的方式。例如:请求转发,重定向,重定向到另外的动作。
    location :指定前往的地址。 可以是一个页面,也可以是一个动作。
     
    @Results
    出现的 位置:它可以出现在 动作类上,也可以出现在 Action 注解中
    作用:用于配置 多个结果视图
    属性:
    value :它是一个 数组,数据类型是 result 注解
     
    @InterceptorRef
    出现的 位置:它可以出现在动作类上或者 Action 注解中。
    作用:用于 配置要引用的拦截器或者拦截器栈
    属性:
    value :用于 指定拦截器或者拦截器栈
     
    SSH-crm搭建(注解版本)
    - -1.导hibernate包(13基本包+hibernate的c3p0包3个)+mysql驱动包
     
    --2.(数据准备表等)编写实体类
     
    --3导入spring包(IOC+AOP+tx+-web(可后面整合导)-)
    4.1编写持久层dao
    4.2编写业务层service
     
    注解事物
    5.编写spring配置文件
    --5.1applicationContext.xml
    --5.2applicationContext-dao.xml
     
     
     
    --5.3applicationContext-tx.xml
     
    --6测试hibernate与spring整合
    测试出现的问题:<property name= "jdbcUrl" value="jdbc:mysql:///tower" />
     
     
    --7.struts配置
    导入前端文件和struts包(struts基础包+struts注解+spring-web(spring与struts整合包)) (eclipse需要导jstl包)
     
     
     
     
     
    --8.编写struts配置文件
     
    --9.编写web.xml配置文件
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>myssh-v3</display-name>
    <!-- 配置全局参数,指定spring配置文件的位置 -->
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value> classpath:spring/applicationContext.xml</param-value> (classpath:必写)
    </context-param>
     
    <!-- 配置监听器ContextLoaderListener,说明: 1.ContextLoaderListener监听器,它会监听ServletContext对象的创建和销毁。默认它是加载WEB-INF/目录下的文件,
    并且文件名称只能是applicationContext.xml 2.applicationContext.xml配置文件,需要与其它的配置文件统一放在一起,方便维护管理。此时只需要配置contextConfigLocation
    属性,告诉监听器配置文件的位置即可。 -->
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
     
    <!-- 配置核心过滤器 -->
    <!-- 配置前端控制器 -->
    <filter>
    <filter-name>crm</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
     
    <!-- 指定struts2配置文件位置 -->
    <init-param>
    <param-name>config</param-name>
    <param-value>struts-default.xml,struts-plugin.xml,struts/struts.xml</param-value>
    </init-param>
    </filter>
     
    <filter-mapping>
    <filter-name>crm</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
     
    </web-app>
     
     
    --10.编写web.xml配置文件
     
    10.1. 编写动作类对象(与前端路径匹配)
     
     
    @Autowired
    // 有注解不用set方法
    private CustomerService service;
    private Customer c = new Customer();
    private List<Customer> customers;
     
    @Override
    public Customer getModel() {
    return c;
    }
     
    // -----------------getter setter----------------------------
    public List<Customer> getCustomers() {
    return customers;
    }
     
    public void setCustomers(List<Customer> customers) {
    this.customers = customers;
    }
     
    // ----------操作方法------------
     
    /**
    * 跳转到新增客户页面
    */
    @Action(value = "addCustomerUI", results = { @Result(name = "addCustomerUI", location = "/jsp/customer/add.jsp") })
    public String addCustomerUI() {
    return "addCustomerUI";
    }
     
    /**
    * 查询客户列表
    */
    @Action(value = "findCustomers", results = { @Result(name = "findCustomers", location = "/jsp/customer/list.jsp") })
    public String findCustomers() {
    customers = service.findcustomers();
    return "findCustomers";
    }
     
    /**
    * 保存客户
    */
    @Action(value = "addCustomer", results = { @Result(name = "addCustomer", type = "redirect", location = "findCustomers.action") })
    public String saveCustomer() {
    service.saveCustomer(c);
    return "addCustomer";
    }
     
    }
     
    ----------------------------------------------------------------------------感谢到访!期待您的下次光临!
  • 相关阅读:
    软件工程团队作业2.1——《业务流程模型》
    软件工程团队作业1——《调研提纲》
    2020软件工程第四次作业
    作业四(一)
    17074230 团队项目选题报告
    计算与软件工程 作业5
    计算与软件工程 作业4
    17074230 第三次作业
    17074230 第二次作业
    17074230 赵雅雅 第一次作业
  • 原文地址:https://www.cnblogs.com/varchar-pig/p/14224654.html
Copyright © 2011-2022 走看看