6 | * Long 2305843005992468481--Use:8414
7 | * long 2305843005992468481--Use:744
8 | *
9 | * @author congyang.guo
10 | */
11 | public class Test {
12 | public static void main(String[] args) {
13 | long l = System.currentTimeMillis();
14 |
15 | long sum = 0L;
16 | for (int i = 0; i < Integer.MAX_VALUE; i++) {
17 | sum += i;
18 | }
19 | System.out.println(sum + "--Use:" + (System.currentTimeMillis() - l));
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/springboot-jpa-thymeleaf/src/main/resources/application.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yy1193889747/springboot-demo/eee5700d46db3dd8c087f3924f43abcd045e35a1/springboot-jpa-thymeleaf/src/main/resources/application.properties
--------------------------------------------------------------------------------
/springboot-jpa-thymeleaf/src/main/resources/ehcache.xml:
--------------------------------------------------------------------------------
1 |
This is a static page
9 | 10 | -------------------------------------------------------------------------------- /springboot-jpa-thymeleaf/src/main/resources/templates/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |# | 17 |UserName | 18 |Name | 19 |Password | 20 |Salt | 21 |State | 22 |Edit | 23 |Delete | 24 |
---|---|---|---|---|---|---|---|
1 | 29 |neo | 30 |neo | 31 |Otto | 32 |6 | 33 |6 | 34 |edit | 35 |delete | 36 |
This is a static page
9 | 10 | -------------------------------------------------------------------------------- /springboot-mybatis-thymeleaf/src/main/resources/static/js/dataTables.bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | DataTables Bootstrap 3 integration 3 | ©2011-2015 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes, 6 | {sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")}; 7 | l=0;for(h=f.length;l用户名或密码错误
38 |# | 17 |User Name | 18 |Password | 19 |Age | 20 |Edit | 21 |Delete | 22 |
---|---|---|---|---|---|
1 | 27 |neo | 28 |Otto | 29 |6 | 30 |edit | 31 |delete | 32 |
6 | * Created by cy 7 | * 2017/12/25 9:47 8 | */ 9 | public class SingletonE { 10 | private SingletonE() { 11 | } 12 | 13 | private volatile static SingletonE singletonE; 14 | 15 | public static SingletonE getSingletonE() { 16 | if (singletonE == null) { 17 | synchronized (SingletonE.class) { 18 | if (singletonE == null) { 19 | singletonE = new SingletonE(); 20 | } 21 | } 22 | } 23 | return singletonE; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/modle/User.java: -------------------------------------------------------------------------------- 1 | package com.ocly.modle; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * Created by cy 7 | * 2017/12/12 14:22 8 | */ 9 | public class User implements Serializable { 10 | 11 | private String name; 12 | private Integer age; 13 | 14 | public String getName() { 15 | return name; 16 | } 17 | 18 | public void setName(String name) { 19 | this.name = name; 20 | } 21 | 22 | public Integer getAge() { 23 | return age; 24 | } 25 | 26 | public void setAge(Integer age) { 27 | this.age = age; 28 | } 29 | 30 | @Override 31 | public String toString() { 32 | return "User{" + 33 | "name='" + name + '\'' + 34 | ", age=" + age + 35 | '}'; 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/rabbit/FanoutReceiverA.java: -------------------------------------------------------------------------------- 1 | package com.ocly.rabbit; 2 | 3 | import org.springframework.amqp.rabbit.annotation.RabbitHandler; 4 | import org.springframework.amqp.rabbit.annotation.RabbitListener; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * Created by cy 9 | * 2017/12/12 19:32 10 | */ 11 | @Component 12 | @RabbitListener(queues = "fanout.A") 13 | public class FanoutReceiverA { 14 | 15 | @RabbitHandler 16 | public void process(String message) { 17 | System.out.println("fanout Receiver A : " + message); 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/rabbit/FanoutReceiverB.java: -------------------------------------------------------------------------------- 1 | package com.ocly.rabbit; 2 | 3 | import org.springframework.amqp.rabbit.annotation.RabbitHandler; 4 | import org.springframework.amqp.rabbit.annotation.RabbitListener; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * Created by cy 9 | * 2017/12/12 19:32 10 | */ 11 | @Component 12 | @RabbitListener(queues = "fanout.B") 13 | public class FanoutReceiverB { 14 | 15 | @RabbitHandler 16 | public void process(String message) { 17 | System.out.println("fanout Receiver B : " + message); 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/rabbit/FanoutReceiverC.java: -------------------------------------------------------------------------------- 1 | package com.ocly.rabbit; 2 | 3 | import org.springframework.amqp.rabbit.annotation.RabbitHandler; 4 | import org.springframework.amqp.rabbit.annotation.RabbitListener; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * Created by cy 9 | * 2017/12/12 19:32 10 | */ 11 | @Component 12 | @RabbitListener(queues = "fanout.C") 13 | public class FanoutReceiverC { 14 | 15 | @RabbitHandler 16 | public void process(String message) { 17 | System.out.println("fanout Receiver C : " + message); 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/rabbit/ObjReceive.java: -------------------------------------------------------------------------------- 1 | package com.ocly.rabbit; 2 | 3 | import com.ocly.modle.User; 4 | import org.springframework.amqp.rabbit.annotation.RabbitHandler; 5 | import org.springframework.amqp.rabbit.annotation.RabbitListener; 6 | import org.springframework.stereotype.Component; 7 | 8 | /** 9 | * Created by cy 10 | * 2017/12/12 14:28 11 | */ 12 | @Component 13 | @RabbitListener(queues = "user") 14 | public class ObjReceive { 15 | 16 | @RabbitHandler 17 | public void process(User user){ 18 | System.out.println("objreceive:"+user.toString()); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/rabbit/ObjSender.java: -------------------------------------------------------------------------------- 1 | package com.ocly.rabbit; 2 | 3 | import com.ocly.modle.User; 4 | import org.springframework.amqp.core.AmqpTemplate; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Component; 7 | 8 | /** 9 | * Created by cy 10 | * 2017/12/12 10:06 11 | */ 12 | @Component 13 | public class ObjSender { 14 | @Autowired 15 | private AmqpTemplate rabbitTemplate; 16 | 17 | public void send(User user) { 18 | System.out.println("senderobj>>>" + user.toString()); 19 | this.rabbitTemplate.convertAndSend("user", user); 20 | } 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/rabbit/Receiver.java: -------------------------------------------------------------------------------- 1 | package com.ocly.rabbit; 2 | 3 | import org.springframework.amqp.rabbit.annotation.RabbitHandler; 4 | import org.springframework.amqp.rabbit.annotation.RabbitListener; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * Created by cy 9 | * 2017/12/12 10:06 10 | */ 11 | @Component 12 | @RabbitListener(queues = "hello") 13 | public class Receiver { 14 | 15 | @RabbitHandler 16 | public void process(String context) { 17 | System.out.println("receive>>>>>" + context); 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/rabbit/Receivertow.java: -------------------------------------------------------------------------------- 1 | package com.ocly.rabbit; 2 | 3 | import com.ocly.modle.User; 4 | import org.springframework.amqp.rabbit.annotation.RabbitHandler; 5 | import org.springframework.amqp.rabbit.annotation.RabbitListener; 6 | import org.springframework.stereotype.Component; 7 | 8 | /** 9 | * Created by cy 10 | * 2017/12/12 13:58 11 | */ 12 | @Component 13 | @RabbitListener(queues = "hello") 14 | public class Receivertow { 15 | 16 | @RabbitHandler 17 | public void process(String user) { 18 | System.out.println("receive2>>>>>" + user); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/rabbit/Sender.java: -------------------------------------------------------------------------------- 1 | package com.ocly.rabbit; 2 | 3 | import com.ocly.modle.User; 4 | import org.springframework.amqp.core.AmqpTemplate; 5 | import org.springframework.amqp.rabbit.core.RabbitTemplate; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Component; 8 | 9 | /** 10 | * Created by cy 11 | * 2017/12/12 10:06 12 | */ 13 | @Component 14 | public class Sender { 15 | @Autowired 16 | private AmqpTemplate rabbitTemplate; 17 | 18 | public void send() { 19 | String context = "hello world"; 20 | System.out.println("sender>>>" + context); 21 | this.rabbitTemplate.convertAndSend("hello", context); 22 | } 23 | 24 | 25 | public void topicSendOne() { 26 | String context = "hello topicSendone"; 27 | System.out.println("sender>>>" + context); 28 | this.rabbitTemplate.convertAndSend("topicexchange","topic.one",context); 29 | } 30 | 31 | public void topicSendTwo() { 32 | String context = "hello topicSendTwo"; 33 | System.out.println("sender>>>" + context); 34 | this.rabbitTemplate.convertAndSend("topicexchange","topic.two",context); 35 | } 36 | 37 | /** 38 | * 发布订阅模式 39 | */ 40 | public void fanoutSend() { 41 | String context = "hello fanout"; 42 | System.out.println("sender>>>" + context); 43 | this.rabbitTemplate.convertAndSend("fanoutExchange","",context); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/rabbit/TopicOneReceive.java: -------------------------------------------------------------------------------- 1 | package com.ocly.rabbit; 2 | 3 | import org.springframework.amqp.rabbit.annotation.RabbitHandler; 4 | import org.springframework.amqp.rabbit.annotation.RabbitListener; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * Created by cy 9 | * 2017/12/12 17:17 10 | */ 11 | @Component 12 | @RabbitListener(queues = "topic.one") 13 | public class TopicOneReceive { 14 | 15 | @RabbitHandler 16 | public void process(String str) { 17 | System.out.println("topicone>>receive>>" + str); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/rabbit/TopicTwoReceive.java: -------------------------------------------------------------------------------- 1 | package com.ocly.rabbit; 2 | 3 | import org.springframework.amqp.rabbit.annotation.RabbitHandler; 4 | import org.springframework.amqp.rabbit.annotation.RabbitListener; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * Created by cy 9 | * 2017/12/12 17:19 10 | */ 11 | @Component 12 | @RabbitListener(queues = "topic.two") 13 | public class TopicTwoReceive { 14 | @RabbitHandler 15 | public void process(String str) { 16 | System.out.println("topictwo>>receive>>" + str); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/task/Crawl.java: -------------------------------------------------------------------------------- 1 | package com.ocly.task; 2 | 3 | /** 4 | * Created by cy 5 | * 2017/12/19 10:37 6 | */ 7 | public class Crawl { 8 | 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/test/Test.java: -------------------------------------------------------------------------------- 1 | package com.ocly.test; 2 | 3 | import com.ocly.modle.SingletonA; 4 | import com.ocly.modle.SingletonB; 5 | 6 | /** 7 | * Created by cy 8 | * 2017/12/25 9:15 9 | */ 10 | public class Test { 11 | public static void main(String[] args) { 12 | SingletonA a = SingletonA.getInstance(); 13 | SingletonA b = SingletonA.getInstance(); 14 | if (a == b) { 15 | System.out.println("同一个"); 16 | } else { 17 | System.out.println("不是同一个"); 18 | } 19 | 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/thread/Ocly.java: -------------------------------------------------------------------------------- 1 | package com.ocly.thread; 2 | 3 | /** 4 | * Created by cy 5 | * 2017/12/25 10:05 6 | */ 7 | public class Ocly extends Thread { 8 | 9 | // thread stop use flag 10 | volatile boolean isok = true; 11 | @Override 12 | public void run() { 13 | System.out.println(getName() + " is actor"); 14 | int count = 0; 15 | while (isok) { 16 | System.out.println(getName() + " appear " + (++count)); 17 | if (count == 40) { 18 | isok = false; 19 | } 20 | if (count % 5 == 0) { 21 | try { 22 | Thread.sleep(2000); 23 | } catch (InterruptedException e) { 24 | e.printStackTrace(); 25 | } 26 | } 27 | } 28 | 29 | System.out.println(getName() + " play over"); 30 | } 31 | 32 | public static void main(String[] args) throws InterruptedException { 33 | Thread a = new Ocly(); 34 | a.setName("Ocly"); 35 | a.start(); 36 | Wack wack = new Wack(); 37 | Thread b = new Thread(wack,"Wack"); 38 | b.start(); 39 | Thread.sleep(3000); 40 | wack.isok=false; 41 | } 42 | } 43 | 44 | class Wack implements Runnable{ 45 | volatile boolean isok = true; 46 | @Override 47 | public void run() { 48 | System.out.println(Thread.currentThread().getName() + " is actor"); 49 | int count = 0; 50 | while (isok) { 51 | System.out.println(Thread.currentThread().getName() + " appear " + (++count)); 52 | if (count == 100) { 53 | isok = false; 54 | } 55 | if (count % 10 == 0) { 56 | try { 57 | Thread.sleep(1000); 58 | } catch (InterruptedException e) { 59 | e.printStackTrace(); 60 | } 61 | } 62 | } 63 | 64 | System.out.println(Thread.currentThread().getName() + " play over"); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /springboot-rabbitmq/src/main/java/com/ocly/util/SendMail.java: -------------------------------------------------------------------------------- 1 | package com.ocly.util; 2 | 3 | import lombok.extern.log4j.Log4j2; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.beans.factory.annotation.Value; 6 | import org.springframework.core.io.FileSystemResource; 7 | import org.springframework.mail.SimpleMailMessage; 8 | import org.springframework.mail.javamail.JavaMailSender; 9 | import org.springframework.mail.javamail.MimeMessageHelper; 10 | import org.springframework.stereotype.Component; 11 | import org.thymeleaf.TemplateEngine; 12 | import org.thymeleaf.context.Context; 13 | 14 | import javax.mail.MessagingException; 15 | import javax.mail.internet.MimeMessage; 16 | import java.io.File; 17 | 18 | /** 19 | * Created by cy 20 | * 2017/12/13 19:57 21 | */ 22 | @Component 23 | @Log4j2 24 | public class SendMail { 25 | @Autowired 26 | private JavaMailSender javaMailSender; 27 | @Autowired 28 | private TemplateEngine templateEngine; 29 | 30 | @Value("${spring.mail.username}") 31 | private String from; 32 | 33 | /** 34 | * 发送文本邮件 35 | * 36 | * @param subject 37 | * @param to 38 | * @param context 39 | */ 40 | 41 | public void sendSimpleMail(String subject, String to, String context) { 42 | SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); 43 | 44 | simpleMailMessage.setFrom(from); 45 | simpleMailMessage.setTo(to); 46 | simpleMailMessage.setSubject(subject); 47 | simpleMailMessage.setText(context); 48 | 49 | try { 50 | javaMailSender.send(simpleMailMessage); 51 | log.info("sucessss:{}", from); 52 | } catch (Exception e) { 53 | log.info("error:{}", from); 54 | } 55 | 56 | 57 | } 58 | 59 | /** 60 | * 发送带文件的mail 61 | * 62 | * @param subject 63 | * @param to 64 | * @param context 65 | * @param filepath 66 | */ 67 | public void sendFileMail(String subject, String to, String context, String filepath) { 68 | 69 | MimeMessage mimeMessage = javaMailSender.createMimeMessage(); 70 | 71 | try { 72 | MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); 73 | helper.setSubject(subject); 74 | helper.setTo(to); 75 | helper.setFrom(from); 76 | helper.setText(context); 77 | 78 | FileSystemResource resource = new FileSystemResource(new File(filepath)); 79 | String filename = filepath.substring(filepath.lastIndexOf(File.separator)); 80 | helper.addAttachment(filename, resource); 81 | 82 | javaMailSender.send(mimeMessage); 83 | 84 | } catch (MessagingException e) { 85 | e.printStackTrace(); 86 | } 87 | } 88 | 89 | /** 90 | * 发送 html mail 91 | * 92 | * @param subject 93 | * @param to 94 | * @param context 95 | */ 96 | public void sendHtmlMail(String subject, String to, String context) { 97 | MimeMessage mimeMessage = javaMailSender.createMimeMessage(); 98 | 99 | try { 100 | // 创建多部件的mail 101 | MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); 102 | helper.setSubject(subject); 103 | helper.setTo(to); 104 | helper.setFrom(from); 105 | helper.setText(context, true); 106 | 107 | javaMailSender.send(mimeMessage); 108 | 109 | } catch (MessagingException e) { 110 | e.printStackTrace(); 111 | } 112 | 113 | 114 | } 115 | 116 | /** 117 | * 发送 模板html mail 带附件 带静态资源 118 | * 119 | * @param subject 120 | * @param to 121 | * @param name 122 | */ 123 | public void sendtemplateHtmlMail(String subject, String to, String name) { 124 | 125 | MimeMessage mimeMessage = javaMailSender.createMimeMessage(); 126 | 127 | try { 128 | // 创建多部件的mail 129 | MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); 130 | helper.setSubject(subject); 131 | helper.setTo(to); 132 | helper.setFrom(from); 133 | String filepath = "C:\\Users\\Administrator\\Desktop\\ocly.png"; 134 | FileSystemResource resource = new FileSystemResource(new File(filepath)); 135 | 136 | String filename = filepath.substring(filepath.lastIndexOf(File.separator)); 137 | helper.addAttachment(filename, resource); 138 | 139 | Context context = new Context(); 140 | context.setVariable("name", name); 141 | String templateHtml = templateEngine.process("emailTemplate", context); 142 | 143 | log.info("来看看模板长啥样 {}",templateHtml); 144 | 145 | helper.setText(templateHtml, true); 146 | // helper.setText("
36 |
|
96 |