2020javaweb框架教程:spring对象创建的方式
实例工厂方法
创建工厂类,写个方法返回类对象:
public class Factory {
public Users createUsers2(){
System.out.println("实例工厂创建");
return new Users();
}
}
2020javaweb框架教程:spring对象创建的细节
单例和多例
1.默认情况下bean是单例的,scope=”singleton’;
2.多例配置:scope=”prototype”;
3.scope=”request”;
4.scope=”session”;
<!-- singleton是单例 获取的对象都是同一个地址 --> <bean name="users2" class="entity.Users" scope="singleton"></bean> <!-- prototype 是 多例 每次构建对象都 new一个新的地址 --> <bean name="users2" class="entity.Users" scope="prototype"></bean>
2020javaweb教程之mysql习题集合
回顾知识
简单查询:select*from 表名;
查询指定列:select sname,score from 表名;
条件查询:
比较运算符:
查询性别为女,并且年龄小于50的记录:
select*from 表名 where sex=’女’ and age<50;
查询学号为S_1001,或者姓名为liSi的记录
select*from 表名 wher sid=’S_1001′ or sname=’lisi’;
查询学号为S _ 1001 ,S _ 1002,S _ 1003的记录 IN(set)
select*from 表名 where sid=’S_1001′ or sid=’S_1002′ or sid=’S_1003′;
或者:
select*from 表名 where sid in(‘S_1001′,’S_1002′,’S_1003’);
查询学号不是S_1001,S_1002,S_1003的记录
select*from 表名 where sid not in(‘S_1001′,’S_1002′,’S_1003’);
(更多…)
2020javaweb框架教程之spring入门
1.什么是spring
spring是一个框架,核心思想IOC、AOP。
简化企业开发,帮助分离对象之间的依赖关系。
IOC:Inversion Of Control 控制反转
DI:dependency Injection 依赖注入
AOP:Aspect Oriented Programming 面向切面编程
2.spring能解决的问题
解耦应用程序,简化开发流程。
AOP支持,声明式事务,集成junit4,方便集成各种开源的优秀框架。
降低JavaEE API的使用难度
3.spring的组成

2020javaweb框架教程之spring的Bean细节
1.Bean创建原理
反射:加载类对象,默认调用无参构造,创建对象。
<bean class="bean.Users" id="users" />
public void classpaths(){//反射
Class<?> u=null;
try {
u = Class.forName("bean.Users");
Constructor<?> constructor = u.getConstructor();
Users o = (Users) constructor.newInstance();
System.out.println(o);
} catch (Exception e) {
e.printStackTrace();
}
}
2.Bean创建模式
2020javaweb框架教程之spring的IOC与DI以及注入
IOC
Inverse Of Controll:控制反转
反转了依赖关系的满⾜⽅式,由之前的⾃⼰创建依赖对象,变为由⼯⼚推送。(变主动为被动,即反转)。
解决了具有依赖关系的组件之间的强耦合,使得项⽬形态更加稳健
DI
Dependency Injection :依赖注⼊
全新的依赖满⾜⽅式,体现在编码中就是全新的赋值⽅式 ==> 在⼯⼚中为属性推送值
如: <property name=”userDAO” ref=”userDAO”></property>
IOC与DI
在spring中关于IOC和DI的描述是这样的: IOC(DI) ,即,是⼀码事
IOC 是思想 :指导我们在满⾜依赖时,应该有反转的设计。
DI 是⼿段 :实际操作时,就是在⼀次次的 注⼊
(更多…)
2020javaweb框架教程之spring概述以及配置
spring
作用:项⽬管理。 管理组件(对象 DAO,Service,Controller)
spring工厂搭建
1.导入依赖
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.3.6.RELEASE</version> </dependency>

2.配置文件
作用:描述哪些组件需要spring⽣产,管理
文件位置:src–>–>main–>resources目录
文件名随意,如:applicationContext.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 作⽤:声明需要spring ⽣产的组件 -->
<!-- UserDAOImpl组件 id="组件标识" class="组件类型" -->
<bean id="userDAO" class="dao.impl.UsersDaoImpl"/>
</beans>

3.启动工厂
工厂接口:ApplicationContext
实现类:ClassPathXmlApplicationContext

service无序调用dao的实现类,直接创建dao并添加set/get方法,然后在applicationContext.xml配置
<!-- spring生成该对象,对象中有一个属性需要赋值--> <bean id="userService" class="service.impl.UsersServiceImpl"> <!-- 给属性 UsersDao 的变量 赋值,值:id="userDAO" --> <property name="ud" ref="userDAO"/> </bean>
然后再去工厂去生成一个
UsersService us = context.getBean("userService", UsersService.class);
us.insert(new Users());
2020javaweb框架教程之maven特性
1.传递性
所谓传递性,是指,在项⽬中导⼊了依赖A,⽽A内部依赖了B,则A会⾃动触发B也被导⼊项⽬
好处:没必要导⼊所有依赖在项⽬中,传递性会⾃动导⼊⼀些依赖。简化依赖导⼊管理
坏处:jar冲突
jar冲突:A依赖B B依赖C和d-1.0 c依赖d-2.0。则此时导⼊A依赖,那么项⽬中会采⽤d-1.0 还是 d-2.0
maven默认的选择原则是:最短路径
d-1.0的路径 A->B->d-1.0
d-2.0的路径 A->B->C->d-2.0 则最终选择的是d-1.0
如果路径相等,则先声明的优先
解决方案:
2020javaweb框架教程之maven的aliyun仓库
在maven安装目录conf目录下打开settings.xml,添加镜像
<mirrors>
<mirror>
<id>aliyun</id>
<!– 中⼼仓库的 mirror(镜像) –>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<!– aliyun仓库地址 以后所有要指向中⼼仓库的请求,都由aliyun仓库接替–>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>




