国信安东令营笔记3

第三天 2.16

上午

IDEA使用继续

  1. 在IDEA中新建mySQL表

  2. 在pojo包中创建一个HelloSQL类文件

  3. MySql中表的名称、字段名陈不区分大小写。

  4. com.gxaedu.crm.pojo包中包含的是所有的表对象。当前工程需要用到那些表,那么应该把这些表一类的形式个保存在pojo包中。做到表和类一一对应需要满足:

    1. 类名 = 表名;

    2. 类中属性名 = 表中字段

  5. mysql中中的int = java中的int, mysql中的varchar = java中的String。

  6. Java中的bean规范,需要为所有属性设置私有属性,并且设置相应的get和set方法。

  7. 补充问题equals()的内核如何编写的, hashCode()如何工作的?

  8. 在pojo包中创建完毕一个pojo之后,对应pojo会创建一个mapper接口,此接口的命名规则,以pojo类名作为接口的前缀名,接口的后缀使用Mapper; 最后在resources/mapper文件夹中创建一个和pojo包中接口名一样名字的XML文件

  9. pojo三个关键点:

    1. pojo中的类对应的是表;

    2. pojo中的mapper接口关联resources/mapper/mapper.xml文件;

       <mapper namespace = "com.gxaedu.crm.pojo.HelloSQLMapper">
           <!--  namespace的作用是关联对应的mapper接口 -->
           <!-- 点出来的方式叫做导航功能,主要是为了准确 -->
           <!-- mapper中编写的就是各种各样的SQL语句和类类型关联 -->
           <insert id=""></insert>
           <delete id=""></delete>
           <update id=""></update>
            <select id="selectUser" resultType="com.gxaedu.crm.pojo.HelloSQLMapper">
               select h.id, h.username, h.password from hellosql h;
           </select>
           <!-- 其中id属性是唯一的,没一个sql操作语句都是单独一个id; 
                   id其实是pojo/mapper接口定义的抽象方法名;  -->
           <!-- resultType属性指定的是返回什么pojo类型,需要加上包名。 -->
       </mapper>
       ​

       

    3. mapper.xml文件需要书写sql语句;

  10. JAVA中的注解

    1. 解析注解 通过反射来获取类,方法,接口,或成员上的运行时注解信息,从而实现动态控制程序运行时的逻辑。反射是在运行时的,所以我们使用反射时解析,必须注解的生命周期是运行时。

  11. Spring中的Bean理解:

    1. 在Spring中,Bean是指构成程序的主干并且由Spring IOC容器管理的对象。Bean是一个由SpringIOC容器实例化、组装和管理的对象。(简单说:Bean是对象,一个或者多个;它由Spring中一个叫IOC的东西管理;应用程序由一个个bean构成。)

      1. IOC就是控制反转,它是一个定义对象之间依赖而不创建他们的过程。

  12. 让Spring控制类构建的过程

    1. 不需要new,让Spring控制new过程: Spring启动时会把所需的类实例化成对象,如果需要依赖,则先实例化依赖,然后实例化当前类。因为依赖必须通过构造函数传入,所以实例化时,当前类就会接受并保存所有依赖的对象。这一步也就是所谓的依赖注入。

      注意,依赖指的是A类中有B类的属性或者方法的使用,此时当没有B类时,将会对A类的实例化造成影响。

    2. 在Spring中,类的实例化、依赖的实例化、依赖的传入都交由SpringBean容器控制,而不是使用new方式实现实例化对象、通过非构造函数方法传入依赖等常规方式。实质控制权已经交由程序控制管理,而不是程序员管理,所以叫做控制反转。

    3. JAVA的Spring框架中注解分为两类:

      1. 一类是使用Bean,即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的封装;比如@Autowired, @Resource,可以通过byType(@Autowired)、byName(@Resource)的方式获取Bean;

      2. 一类是注册Bean,@Component, @Repository, @Controller, @Service, @Configration这些注解都是吧你要实例化的对象转化成一个Bean, 放在IOC容器中,等你要使用的时候,它会和上面的@Autowirted, @Resource配和到一起,把对象、属性、方法完美组装。

    4. 总结:凡是子类及带属性、方法的类都注册Bean到Spring中,交给它管理。Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean。完成这两个动作有三种方式,一种是使用自动配置的方式、一种是使用JavaConfig的方式,一种就是使用XML配置的方式。

 

下午

  1. 遇到的几种简单错误: 1. 返回多条数据记录错误; 2. 数据库8.0的驱动问题; 3. idea中文插件问题, 企业中不允许使用中文插件; 4. pojo属性决定返回显示内容 5. 红色下划线代表语法错误 6. 手抖写错路径 7. tomcat运行问题 8. tomcat中加载项目问题 9. war包级别运行,语法检查问题

  2. SSM执行流程:(生命周期)

    1. 启动WEB服务器

    2. web服务器会加载web/WEB-INF/web.xml文件

    3. 通过web.xml中Spring和spring mvc的资源路径,读取文件中的spring和spring mvc配置项(对应的资源包路径)

    4. 首先读取spring的配置文件(spring_database.xml),SpringIOC容器会开始启动,并且扫描指定的包路径

       <context:component-scan base-package="com.gxaedu.crm.service"/>
    5. 扫描所有的mapper指向路径(纳入Spring管理 初始化对象) com.gxaedu.crm.pojo

    6. 扫描所有的service指向路径(纳入spring管理 初始化对象)com.gxaedu.crm.service

    7. 读取spring mvc配置文件(spring_mvc.xml)

    8. 扫描所有的controller指向路径(纳入spring mvc管理 初始化对象) com.gxaedu.crm.controller

    9. 到此为止,扫描加载全部完成

    10. 注意:Spring mvc中只有单实例化对象没有多实例化对象。

  3. 服务器405报错是因为什么?

    uploading.4e448015.gif转存失败重新上传取消

  4. SSM生命周期详细:

    1. 启动WEB服务;

    2. WEB服务器加载web.xml文件;

    3. 通过web.xml自动调用Spring配置项和SpringMVC配置项。

    4. 读取Spring配置项和SpringMVC配置项中指定的Spring、SpringMVC配置文件。

    5. 首先加载Spring配置文件,SpringIOC容器会开始启动,并且扫描指定的包路径

       <context:component-scan base-package="com.gxaedu.crm.service"/>
    6. 当扫描到此路径对应的Serivce类时,会自动初始化(调用此Service类的构造函数), 并且放置到Spring IOC容器中。

    7. Spring还会扫描mybatis被纳入管理的xml文件

       <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    8. 这时,会开始加载SpringMVC的配置内容,SpringMVC容器开始启动,并且扫描指定的Controller

       <context:component-scan base-package="com.gxaedu.crm.controller"/>
    9. 当扫描到此路径的Controller类时,会自动初始化(调用此Contreller类的构造方法),并且将对象放置到IOC容器中。

    10. SpringMVC会根据配置文件中的静态资源配置项,来对所有的静态内容放行。

    11. 上述步骤启动完,整个SSM工程成功运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值