舒大少博客

一个95后少年的个人博客

当前时间为:
欢迎大家来到舒大少博客http://admin.evshou.com,广告合作以及淘宝商家推广请微信联系15357240395

2020java框架教程之spring的bean作用域

2020-12-10 15:24:52
swq1822677238

2020java框架教程之spring的bean作用域

Scope作用域

单例 singleton:

在整个应用程序中,只创建bean的一个实例

原型 prototype:

每次注入或通过spring上下文获取的时候,都会创建一个新的bean实例

会话 session:

在web应用程序中,为每个会话创建一个bean实例

请求request:

在web应用程序中,为每个请求创建一个bean实例

单例和多例

(更多…)

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

2020-12-05 16:02:31
swq1822677238

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 14:35:11
swq1822677238

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框架教程之maven生命周期

2020-11-28 10:19:46
swq1822677238

2020javaweb框架教程之maven生命周期

依赖生命周期

<dependency>
  <!-- jstl 支持 -->
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
  <scope>compile</scope><!-- 生命周期 -->
</dependency>

maven生命周期如下

compile:默认值,适⽤于所有阶段(测试,编译,运⾏,打包),会随着项⽬⼀起发布(被打包)

provided:类似compile,期望JDK、容器或使⽤者会提供这个依赖。如servlet.jar,参与测试,编译,不会被打包

runtime:只在运⾏时使⽤,如 jdbc6.jar,适⽤运⾏和测试阶段,会被⼀起发布

test:只在测试时使⽤,⽤于编译和运⾏测试代码,如 junit.jar,不会随项⽬发布

system:类似provided,但Maven不会在Repository中查找它,要在本地磁盘⽬录中查找,参与编译,测试,打包,运⾏。

2020javaweb框架教程之idea配置maven以及配置Tomcat

2020-11-28 10:08:21
swq1822677238

2020javaweb框架教程之idea配置maven以及配置Tomcat

idea配置maven

选择骨架

创建maven项目,选择骨架


项目结构

java项目:
1.src/main/java 存放源代码,建包,放项⽬中代码(service,dao,User,….)
2.src/main/resources 书写配置⽂件,项⽬中的配置⽂件(jdbc.properties)
3.src/test/java 书写测试代码,项⽬中测试案例代码
4.src/test/resources 书写测试案例相关配置⽂件
5.项⽬根/pom.xml (project object model) maven项⽬核⼼⽂件,其中定义项⽬构建⽅式,声明依赖等
注意:项⽬中的建包,建类,执⾏,都和普通项⽬⽆差异

导入依赖jar

建好项⽬后,需要导⼊需要的jar,要通过【坐标】
1. 每个构件都有⾃⼰的坐标(标识) = groupId + artifactId + version = 项⽬标识 + 项⽬名 + 版本
2. 在maven项⽬中只需要配置坐标,maven便会⾃动加载对应依赖。删除坐标则会移除依赖
3. jar包并不会导⼊到项⽬⽬录中,只是maven帮助做了关联。但在打包部署项⽬时会携带对应依赖
4. ⽽且,如果导⼊了依赖A,⽽A中⼜依赖了B,则B会被⾃动加载。

查找依赖

依赖查找服务:https://mvnrepository.com/ ,获得依赖的坐标,在maven项⽬中导⼊。

导入依赖

在项目的pom文件中:

<dependency>
  <!-- jstl 支持 -->
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
  <scope>compile</scope>
</dependency><!-- 通过坐标导入依赖 -->

同步依赖

创建javaweb项目导入依赖

<dependency>
  <!-- jstl 支持 -->
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <!-- servlet编译环境 -->
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <!-- jsp编译环境 -->
  <groupId>javax.servlet</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.0</version>
  <scope>provided</scope>
</dependency>

配置Tomcat