海阔天空

当前时间为:
欢迎大家来到海阔天空https://www.9713job.com,广告合作以及淘宝商家推广请微信联系15357240395

2020java框架教程:spring的aop编程

未分类
2020-12-06 10:23:44
1822677238@qq.com

2020java框架教程:spring的aop编程

1.创建web项目

2.引入jar包:

aopalliance.jar、aspectjweaver.jar

3.日志

log4j.properties

4.准备目标对象

先创建类的接口,然后创建类的实现类

5.编写通知

前置通知:在目标方法之前调用
后置通知(如果出现异常就不调用):在目标方法之后调用
后置通知:(无论是否出现异常都会调用):在目标方法之后调用
环绕通知:在目标方法之前、后调用
异常通知:出现异常则调用
(更多…)

2020java框架教程:spring的aop相关概念

未分类
2020-12-05 16:25:09
1822677238@qq.com

2020java框架教程:spring的aop相关概念

1.AOP思想:横向重复,纵向抽取

2.底层实现:

Spring的AOP的底层用到两种代理机制:

JDK的动态代理:针对实现了接口的类产生代理。
Cglib 的动态代理:针对没有实现接口的类产生代理,应用的是底层的字节码增强的技术生成当前类的子类对象。

3.AOP的开发中相关术语:
(更多…)

2020java框架教程:spring注解以及整合Junit

未分类
2020-12-05 16:02:31
1822677238@qq.com

2020java框架教程:spring注解以及整合Junit

1.创建web项目

2.导包

3.导入配置文件log4j.properties

4.添加容器以及配置注解扫描: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"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
    <!--配置注解扫描,指定要扫描的包 -->
     <context:component-scan base-package="entity"/>
</beans>

5.配置注解扫描

<!–配置注解扫描,指定要扫描的包 –>

<context:component-scan base-package=”entity”/>

整合junit测试

1.导入spring-test包

2.创建实体类

在类的上方添加注解

@Component("users") 适用于所有组件
@Repository("users") 适用于持久层
@Service("users")   适用于service层
@Controller("users") 适用于控制层

等同于<bean name=”name” class=”entity.Users” />

3.创建测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class RunWithTest {
    @Resource(name = "users")
    private Users users;
    @Test
    public void test(){
        System.out.println(users);
    }
}

4.指定对象的作用域是否是单例还是多例

@Scope(scopeName = "singleton")  //二选一
@Scope(scopeName = "prototype")

5.set方式注入value值

a.在私有成员变量中注入

//注入
@Value("1")
private int id;
@Value("admin")
private String name;
@Value("5200")
private double salary;
@Autowired
private Car car;

 

b.在set方法注入

6.自动装配

@AutoWired
使用@AutoWired进行自动装配,按照对象的类型进行自动装配

@Component
public class Car {
    @Value("摩拜单车")
    private String name;
    @Value("black")
    private String color;
}
public class Users {
    @Autowired 自动装配
    private Car car;
}

自动装配存在的问题:如果一个类型有多个对象,那么可以采用以下的方式

先在配置文件中添加

<bean name="car1" class="entity.Car">
    <property name="name" value="保时捷"/>
    <property name="color" value="red"/>
</bean>
<bean name="car2" class="entity.Car">
    <property name="name" value="捷达"/>
    <property name="color" value="white"/>
</bean>

A.使用@Qualifier指定具体的对象

@Autowired
@Qualifier("car1")
private Car car;

B.使用 @Resource 指定具体的对象

@Autowired
@Resource(name="car2")
private Car car;

7.初始化方法和销毁方法

@PostConstruct 
public void init(){
    System.out.println("初始化");
}
@PreDestroy
public void destroy(){
    System.out.println("销毁");
}

2020javaweb框架教程:spring对象创建的方式

未分类
2020-12-04 15:18:09
1822677238@qq.com

2020javaweb框架教程:spring对象创建的方式

实例工厂方法

创建工厂类,写个方法返回类对象:

public class Factory {
    public Users createUsers2(){
        System.out.println("实例工厂创建");
        return new Users();
    }
}

(更多…)

2020javaweb框架教程:spring对象创建的细节

未分类
2020-12-04 14:35:11
1822677238@qq.com

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框架教程:spring的HelloWorld

未分类
2020-12-04 11:37:51
1822677238@qq.com

2020javaweb框架教程:spring的HelloWorld

1.创建web项目

2.引入jar包

3.引入配置文件

log4j.properties
(更多…)

2020javaweb教程之mysql习题集合

未分类
2020-12-04 10:36:36
1822677238@qq.com

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入门

未分类
2020-11-29 16:14:30
1822677238@qq.com

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细节

未分类
2020-11-29 16:00:35
1822677238@qq.com

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以及注入

未分类
2020-11-29 13:59:06
1822677238@qq.com

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 是⼿段 :实际操作时,就是在⼀次次的 注⼊
(更多…)