Skip to content

Commit 3e3e698

Browse files
committed
add spring boot
1 parent 4ec3317 commit 3e3e698

File tree

10 files changed

+428
-0
lines changed

10 files changed

+428
-0
lines changed

‎04fx/springboot01/pom.xml‎

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<groupId>org.springframework.boot</groupId>
7+
<artifactId>spring-boot-starter-parent</artifactId>
8+
<version>2.0.9.RELEASE</version>
9+
<relativePath/> <!-- lookup parent from repository -->
10+
</parent>
11+
<groupId>io.kimmking</groupId>
12+
<artifactId>springboot01</artifactId>
13+
<version>0.0.1-SNAPSHOT</version>
14+
<name>springboot01</name>
15+
<description>Demo project for Spring Boot</description>
16+
17+
<properties>
18+
<java.version>1.8</java.version>
19+
</properties>
20+
21+
<dependencies>
22+
<dependency>
23+
<groupId>org.springframework.boot</groupId>
24+
<artifactId>spring-boot-starter</artifactId>
25+
</dependency>
26+
27+
<dependency>
28+
<groupId>org.springframework.boot</groupId>
29+
<artifactId>spring-boot-starter-activemq</artifactId>
30+
</dependency>
31+
<dependency>
32+
<groupId>org.springframework.boot</groupId>
33+
<artifactId>spring-boot-starter-web</artifactId>
34+
</dependency>
35+
<dependency>
36+
<groupId>org.apache.activemq</groupId>
37+
<artifactId>activemq-pool</artifactId>
38+
<version>5.15.0</version>
39+
</dependency>
40+
41+
42+
<dependency>
43+
<groupId>org.springframework.boot</groupId>
44+
<artifactId>spring-boot-starter-data-mongodb</artifactId>
45+
</dependency>
46+
47+
48+
<dependency>
49+
<groupId>org.springframework.boot</groupId>
50+
<artifactId>spring-boot-starter-test</artifactId>
51+
<scope>test</scope>
52+
<exclusions>
53+
<exclusion>
54+
<groupId>org.junit.vintage</groupId>
55+
<artifactId>junit-vintage-engine</artifactId>
56+
</exclusion>
57+
</exclusions>
58+
</dependency>
59+
</dependencies>
60+
61+
<build>
62+
<plugins>
63+
<plugin>
64+
<groupId>org.springframework.boot</groupId>
65+
<artifactId>spring-boot-maven-plugin</artifactId>
66+
</plugin>
67+
</plugins>
68+
</build>
69+
70+
</project>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
packageio.kimmking.springboot01;
2+
3+
importorg.springframework.boot.SpringApplication;
4+
importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;
5+
importorg.springframework.boot.autoconfigure.SpringBootApplication;
6+
importorg.springframework.data.mongodb.repository.config.EnableMongoRepositories;
7+
importorg.springframework.jms.annotation.EnableJms;
8+
9+
@SpringBootApplication
10+
@EnableJms//启动消息队列
11+
@EnableMongoRepositories
12+
publicclassSpringboot01Application{
13+
14+
publicstaticvoidmain(String[] args){
15+
SpringApplication.run(Springboot01Application.class, args);
16+
}
17+
18+
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
packageio.kimmking.springboot01.jms;
2+
3+
importorg.apache.activemq.ActiveMQConnectionFactory;
4+
importorg.apache.activemq.command.ActiveMQQueue;
5+
importorg.apache.activemq.command.ActiveMQTopic;
6+
importorg.springframework.beans.factory.annotation.Value;
7+
importorg.springframework.context.annotation.Bean;
8+
importorg.springframework.context.annotation.Configuration;
9+
importorg.springframework.jms.config.JmsListenerContainerFactory;
10+
importorg.springframework.jms.config.SimpleJmsListenerContainerFactory;
11+
importorg.springframework.jms.core.JmsMessagingTemplate;
12+
13+
importjavax.jms.ConnectionFactory;
14+
importjavax.jms.Queue;
15+
importjavax.jms.Topic;
16+
17+
@Configuration
18+
publicclassBeanConfig{
19+
20+
@Value("${spring.activemq.broker-url}")
21+
privateStringbrokerUrl;
22+
23+
@Value("${spring.activemq.user}")
24+
privateStringusername;
25+
26+
@Value("${spring.activemq.topic-name}")
27+
privateStringpassword;
28+
29+
@Value("${spring.activemq.queue-name}")
30+
privateStringqueueName;
31+
32+
@Value("${spring.activemq.topic-name}")
33+
privateStringtopicName;
34+
35+
@Bean(name = "queue")
36+
publicQueuequeue(){
37+
returnnewActiveMQQueue(queueName);
38+
}
39+
40+
@Bean(name = "topic")
41+
publicTopictopic(){
42+
returnnewActiveMQTopic(topicName);
43+
}
44+
45+
@Bean
46+
publicConnectionFactoryconnectionFactory(){
47+
returnnewActiveMQConnectionFactory(username, password, brokerUrl);
48+
}
49+
50+
@Bean
51+
publicJmsMessagingTemplatejmsMessageTemplate(){
52+
returnnewJmsMessagingTemplate(connectionFactory());
53+
}
54+
55+
// 在Queue模式中,对消息的监听需要对containerFactory进行配置
56+
@Bean("queueListener")
57+
publicJmsListenerContainerFactory<?> queueJmsListenerContainerFactory(ConnectionFactoryconnectionFactory){
58+
SimpleJmsListenerContainerFactoryfactory = newSimpleJmsListenerContainerFactory();
59+
factory.setConnectionFactory(connectionFactory);
60+
factory.setPubSubDomain(false);
61+
returnfactory;
62+
}
63+
64+
//在Topic模式中,对消息的监听需要对containerFactory进行配置
65+
@Bean("topicListener")
66+
publicJmsListenerContainerFactory<?> topicJmsListenerContainerFactory(ConnectionFactoryconnectionFactory){
67+
SimpleJmsListenerContainerFactoryfactory = newSimpleJmsListenerContainerFactory();
68+
factory.setConnectionFactory(connectionFactory);
69+
factory.setPubSubDomain(true);
70+
returnfactory;
71+
}
72+
}
73+
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
packageio.kimmking.springboot01.jms;
2+
3+
importorg.springframework.beans.factory.annotation.Autowired;
4+
importorg.springframework.jms.core.JmsMessagingTemplate;
5+
importorg.springframework.web.bind.annotation.PostMapping;
6+
importorg.springframework.web.bind.annotation.RequestBody;
7+
importorg.springframework.web.bind.annotation.RestController;
8+
importjavax.jms.Destination;
9+
importjavax.jms.Queue;
10+
importjavax.jms.Topic;
11+
12+
@RestController
13+
publicclassProducerController
14+
{
15+
@Autowired
16+
privateJmsMessagingTemplatejmsMessagingTemplate;
17+
18+
@Autowired
19+
privateQueuequeue;
20+
21+
@Autowired
22+
privateTopictopic;
23+
24+
25+
// curl http://localhost:8080/queue/test -X POST -d "testququuquqq"
26+
@PostMapping("/queue/test")
27+
publicStringsendQueue(@RequestBodyStringstr){
28+
this.sendMessage(this.queue, str);
29+
return"success";
30+
}
31+
32+
33+
//curl http://localhost:8080/topic/test -X POST -d "testtopiccccc"
34+
@PostMapping("/topic/test")
35+
publicStringsendTopic(@RequestBodyStringstr){
36+
this.sendMessage(this.topic, str);
37+
return"success";
38+
}
39+
40+
// 发送消息,destination是发送到的队列,message是待发送的消息
41+
privatevoidsendMessage(Destinationdestination, finalStringmessage){
42+
jmsMessagingTemplate.convertAndSend(destination, message);
43+
}
44+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
packageio.kimmking.springboot01.jms;
2+
3+
importorg.springframework.jms.annotation.JmsListener;
4+
importorg.springframework.stereotype.Component;
5+
6+
@Component
7+
publicclassQueueConsumerListener{
8+
//queue模式的消费者
9+
@JmsListener(destination = "${spring.activemq.queue-name}", containerFactory = "queueListener")
10+
publicvoidreadActiveQueue(Stringmessage){
11+
System.out.println("queue接受到:" + message);
12+
}
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
packageio.kimmking.springboot01.jms;
2+
3+
importorg.springframework.jms.annotation.JmsListener;
4+
importorg.springframework.stereotype.Component;
5+
6+
@Component
7+
publicclassTopicConsumerListener{
8+
//topic模式的消费者
9+
@JmsListener(destination = "${spring.activemq.topic-name}", containerFactory = "topicListener")
10+
publicvoidreadActiveQueue(Stringmessage){
11+
System.out.println("topic接受到:" + message);
12+
}
13+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
packageio.kimmking.springboot01.mongo;
2+
3+
importorg.springframework.beans.factory.annotation.Autowired;
4+
importorg.springframework.boot.SpringApplication;
5+
importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;
6+
importorg.springframework.data.mongodb.core.MongoTemplate;
7+
importorg.springframework.data.mongodb.core.query.Criteria;
8+
importorg.springframework.data.mongodb.core.query.Query;
9+
importorg.springframework.stereotype.Controller;
10+
importorg.springframework.web.bind.annotation.RequestMapping;
11+
importorg.springframework.web.bind.annotation.ResponseBody;
12+
13+
importjava.util.List;
14+
15+
@Controller
16+
@EnableAutoConfiguration
17+
publicclassMongoController{
18+
19+
@Autowired
20+
MongoTemplatemongoTemplate;
21+
22+
@RequestMapping("/mongo/list")
23+
@ResponseBody
24+
List<User> mongo(){
25+
//Query query = new Query();
26+
//query.addCriteria(Criteria.where("name").is("kk"));
27+
//String name = mongotemplate.findOne(query, User.class).getName();
28+
returnmongoTemplate.findAll(User.class);
29+
}
30+
31+
@RequestMapping("/mongo/test")
32+
@ResponseBody
33+
Stringtest(){
34+
//Query query = new Query();
35+
//query.addCriteria(Criteria.where("name").is("kk"));
36+
//String name = mongotemplate.findOne(query, User.class).getName();
37+
Useruser = newUser();
38+
user.setId(newLong(System.currentTimeMillis()).toString());
39+
user.setName("KK" + System.currentTimeMillis() % 1000);
40+
user.setAge("33");
41+
mongoTemplate.insert(user);
42+
return"test ok";
43+
}
44+
45+
46+
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
packageio.kimmking.springboot01.mongo;
2+
3+
importorg.springframework.data.annotation.Id;
4+
importorg.springframework.data.mongodb.core.mapping.Document;
5+
importorg.springframework.data.mongodb.core.mapping.Field;
6+
7+
@Document(collection = "user")
8+
publicclassUser{
9+
10+
@Id
11+
privateStringid;
12+
@Field("username")
13+
privateStringusername;
14+
privateStringpassword;
15+
privateStringregisterTime;
16+
privateStringphone;
17+
privateStringname;
18+
privateStringsex;
19+
privateStringage;
20+
21+
publicStringgetId(){
22+
returnid;
23+
}
24+
25+
publicvoidsetId(Stringid){
26+
this.id = id;
27+
}
28+
29+
publicStringgetUsername(){
30+
returnusername;
31+
}
32+
33+
publicvoidsetUsername(Stringusername){
34+
this.username = username;
35+
}
36+
37+
publicStringgetPassword(){
38+
returnpassword;
39+
}
40+
41+
publicvoidsetPassword(Stringpassword){
42+
this.password = password;
43+
}
44+
45+
publicStringgetRegisterTime(){
46+
returnregisterTime;
47+
}
48+
49+
publicvoidsetRegisterTime(StringregisterTime){
50+
this.registerTime = registerTime;
51+
}
52+
53+
publicStringgetPhone(){
54+
returnphone;
55+
}
56+
57+
publicvoidsetPhone(Stringphone){
58+
this.phone = phone;
59+
}
60+
61+
publicStringgetName(){
62+
returnname;
63+
}
64+
65+
publicvoidsetName(Stringname){
66+
this.name = name;
67+
}
68+
69+
publicStringgetSex(){
70+
returnsex;
71+
}
72+
73+
publicvoidsetSex(Stringsex){
74+
this.sex = sex;
75+
}
76+
77+
publicStringgetAge(){
78+
returnage;
79+
}
80+
81+
publicvoidsetAge(Stringage){
82+
this.age = age;
83+
}
84+
85+
}

0 commit comments

Comments
(0)